Tensura: Eldritch Wiki tensuraeldritch_en https://tensuraeldritch.wiki.gg/ MediaWiki 1.43.1 first-letter Media Special Talk User User talk Meta Meta talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Module Module talk Main Page 0 1 1 2025-04-09T22:22:44Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Tensura: Eldritch Wiki]] d2cc22fa9cb8fd68118cdadcbf8201c10e493daa 2 1 2025-04-09T22:22:45Z ARTIFICER 564804 Protected "[[Main Page]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki #redirect [[Tensura: Eldritch Wiki]] d2cc22fa9cb8fd68118cdadcbf8201c10e493daa Tensura: Eldritch Wiki 0 2 3 2025-04-09T22:22:45Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <!-- Hello and welcome to wiki.gg! This page is built via our IMProved Main Page (IMP) framework. If you are familiar with CSS grid areas, that's what you're defining here! But if you don't know any CSS that's ok! πŸ‘€ RULE 1: the same keyword represents the same section & can span multiple cells πŸ‘€ RULE 2: Each box in each layout must be a CONTIGUOUS RECTANGLE of any dimensions (most likely one of: 1x1, 1x2, 2x1, 2x2, 1x3, 3x1, 3x2, 2x3) πŸ‘€ RULE 3: This page defines LAYOUT ONLY. To edit the content, please use the links provided for you after saving/previewing your page. πŸ‘€ RULE 4: If you want to RENAME or ADD a box, (1) add a new section to the grid layout below (all three breakpoints!) and then (2) save or preview this page and then (3) click "Create this box" -->{{Main page |desktop= <!-- for WIDE SCREENS --> <!-- πŸ‘€ keep this at 3 columns, but you can otherwise rearrange as desired --> welcome welcome welcome about pages pages contribute contribute external <!-- end WIDE SCREEN layout --> |tablet= <!-- for TABLET SCREENS --> <!-- πŸ‘€ keep this at 2 columns, but you can otherwise rearrange as desired --> welcome welcome about pages contribute external <!-- end TABLET SCREEN layout --> |mobile= <!-- for MOBILE DEVICES --> <!-- πŸ‘€ keep this at 1 column, but you can otherwise rearrange as desired --> welcome about pages external contribute <!-- end MOBILE DEVICE layout --> }} {{#description2:Welcome to the {{SITENAME}}, a collaborative wiki resource that is open for anyone to edit!}} <!-- this is a short description of your wiki, which will appear in embeds in Google search results, Discord links, etc. --> c5d4351377806d884e84bc34774f85fd4a425e0a 4 3 2025-04-09T22:22:45Z ARTIFICER 564804 Protected "[[Tensura: Eldritch Wiki]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <!-- Hello and welcome to wiki.gg! This page is built via our IMProved Main Page (IMP) framework. If you are familiar with CSS grid areas, that's what you're defining here! But if you don't know any CSS that's ok! πŸ‘€ RULE 1: the same keyword represents the same section & can span multiple cells πŸ‘€ RULE 2: Each box in each layout must be a CONTIGUOUS RECTANGLE of any dimensions (most likely one of: 1x1, 1x2, 2x1, 2x2, 1x3, 3x1, 3x2, 2x3) πŸ‘€ RULE 3: This page defines LAYOUT ONLY. To edit the content, please use the links provided for you after saving/previewing your page. πŸ‘€ RULE 4: If you want to RENAME or ADD a box, (1) add a new section to the grid layout below (all three breakpoints!) and then (2) save or preview this page and then (3) click "Create this box" -->{{Main page |desktop= <!-- for WIDE SCREENS --> <!-- πŸ‘€ keep this at 3 columns, but you can otherwise rearrange as desired --> welcome welcome welcome about pages pages contribute contribute external <!-- end WIDE SCREEN layout --> |tablet= <!-- for TABLET SCREENS --> <!-- πŸ‘€ keep this at 2 columns, but you can otherwise rearrange as desired --> welcome welcome about pages contribute external <!-- end TABLET SCREEN layout --> |mobile= <!-- for MOBILE DEVICES --> <!-- πŸ‘€ keep this at 1 column, but you can otherwise rearrange as desired --> welcome about pages external contribute <!-- end MOBILE DEVICE layout --> }} {{#description2:Welcome to the {{SITENAME}}, a collaborative wiki resource that is open for anyone to edit!}} <!-- this is a short description of your wiki, which will appear in embeds in Google search results, Discord links, etc. --> c5d4351377806d884e84bc34774f85fd4a425e0a Example character 0 3 5 2025-04-09T22:22:46Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{Example character infobox |title=Dragon |image=Example character image.png |Region=Shurima |Element=Fire |Attack=51 |HP=85 |Armor=34 |Attack Speed=78 }} Please note, this is NOT content related to {{SITENAME}}. It is an example page for the demonstration of [[support:DRUID infoboxes|DRUID infoboxes]]. Please delete this page at your earliest convenience! To edit how the infobox works, please see {{tl|Example character infobox}}. == About == The '''Example Character''' is a very cool character found in the Default Loadout Wiki. It is a dragon that can camouflage itself as a flower due to inventive and scientific reasons, and not because the artist is bad at drawing dragons. == Combat == The Example Character has several attacks, including: * Disguise Self As Flower * Flame Breath * Sneak Attack * Fireball * Dawizard == Dragon Riding == If the player tames the Example Character, they can perform several Dragon Riding stunts. See [[Dragon Riding]] for more information. == Levels == Example Character can be found in the following levels: * [[Introduction]] * [[Level 1]] * [[Level 3]] * [[Level 5]] * [[Bonus Content 6]] [[Category:Characters]] 5feed3ead005cb5ca4b2ecf1f3745925d2b8b41d Tensura: Eldritch Wiki/welcome 0 4 6 2025-04-09T22:22:46Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{Main page box/start | title = Welcome to the {{SITENAME}}! }} We are currently maintaining [[Special:AllPages|{{NUMBEROFARTICLES}} articles]]. Please feel free to contribute by creating new articles or expanding existing ones. {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> 96df981ef23fca9434d1586228cab8a51e0fdc0a 7 6 2025-04-09T22:22:47Z ARTIFICER 564804 Protected "[[Tensura: Eldritch Wiki/welcome]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki {{Main page box/start | title = Welcome to the {{SITENAME}}! }} We are currently maintaining [[Special:AllPages|{{NUMBEROFARTICLES}} articles]]. Please feel free to contribute by creating new articles or expanding existing ones. {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> 96df981ef23fca9434d1586228cab8a51e0fdc0a Tensura: Eldritch Wiki/pages 0 5 8 2025-04-09T22:22:47Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{Main page box/start | title = Useful wiki pages | class = centered-content }} <div class="mp-links columns-2"> * {{MP link|Important page here|image=Wiki.gg logo-pink.svg|size=92px}} * {{MP link|Random page|link=Special:Random}} * {{MP link|Example character|link=Example character|image=Example_character_image.png|size=92px}} * {{MP link|Example character infobox|link=Template:Example character infobox|image=Example_character_image.png|size=92px}} </div> {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> 827f14b4cd3d346ca427f95e9574fc23c4874206 9 8 2025-04-09T22:22:48Z ARTIFICER 564804 Protected "[[Tensura: Eldritch Wiki/pages]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki {{Main page box/start | title = Useful wiki pages | class = centered-content }} <div class="mp-links columns-2"> * {{MP link|Important page here|image=Wiki.gg logo-pink.svg|size=92px}} * {{MP link|Random page|link=Special:Random}} * {{MP link|Example character|link=Example character|image=Example_character_image.png|size=92px}} * {{MP link|Example character infobox|link=Template:Example character infobox|image=Example_character_image.png|size=92px}} </div> {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> 827f14b4cd3d346ca427f95e9574fc23c4874206 Tensura: Eldritch Wiki/about 0 6 10 2025-04-09T22:22:48Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{Main page box/start | title = About Tensura: Eldritch }} This is an example main page. You can redesign it however you want, or you can keep the layout the same but change the contents (e.g. this part should talk about your game). Take a look at some other wiki.gg wikis for inspiration! <div style="text-align:right">[[Tensura: Eldritch|Read more...]]</div> {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> e02f730a41f68e8fed32a70351b925e043c578b9 11 10 2025-04-09T22:22:49Z ARTIFICER 564804 Protected "[[Tensura: Eldritch Wiki/about]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki {{Main page box/start | title = About Tensura: Eldritch }} This is an example main page. You can redesign it however you want, or you can keep the layout the same but change the contents (e.g. this part should talk about your game). Take a look at some other wiki.gg wikis for inspiration! <div style="text-align:right">[[Tensura: Eldritch|Read more...]]</div> {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> e02f730a41f68e8fed32a70351b925e043c578b9 Tensura: Eldritch Wiki/contribute 0 7 12 2025-04-09T22:22:49Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{Main page box/start | title = Contribute to the wiki }} {{SITENAME}} is a collaborative wiki resource that is open for anyone to edit. You don't need special permission beyond [[Special:UserLogin/signup|registering]] an account to edit most pages, and your contributions can grow the wiki and help other players. ; '''Adding content''' :* If you are unsure of what to do or how to create a page, search for a few articles on the same topic and see what they look like. You can always view the source code in a wiki and learn from what others have done. :* An edit doesn't have to be massive; if you feel you don't want to create whole articles, then just fixing spelling errors and broken links is enough. :* [[Special:UserLogin/signup|Register]] to edit and track your contributions. {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> 43f95d1bb5b6adea940bacb4caa32aa74edf7690 13 12 2025-04-09T22:22:49Z ARTIFICER 564804 Protected "[[Tensura: Eldritch Wiki/contribute]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki {{Main page box/start | title = Contribute to the wiki }} {{SITENAME}} is a collaborative wiki resource that is open for anyone to edit. You don't need special permission beyond [[Special:UserLogin/signup|registering]] an account to edit most pages, and your contributions can grow the wiki and help other players. ; '''Adding content''' :* If you are unsure of what to do or how to create a page, search for a few articles on the same topic and see what they look like. You can always view the source code in a wiki and learn from what others have done. :* An edit doesn't have to be massive; if you feel you don't want to create whole articles, then just fixing spelling errors and broken links is enough. :* [[Special:UserLogin/signup|Register]] to edit and track your contributions. {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> 43f95d1bb5b6adea940bacb4caa32aa74edf7690 Tensura: Eldritch Wiki/external 0 8 14 2025-04-09T22:22:50Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{Main page box/start | title = External links }} <div class="mp-links columns-2"> * {{MP link|Official site|link=https://wiki.gg}} * {{MP link|Discord|link=https://discord.gg/rTnST57tuW|image=Discord.svg|size=64x64px}} * {{MP link|Bluesky|link=https://bsky.app/profile/wiki.gg|image=Bluesky.svg|size=64x64px}} * {{MP link|indie.io|link=https://www.indie.io/|image=indie.io.svg|size=64x64px}} </div> {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> bb8190c57bb4cc147764d1c10f218fe4d34e0a49 15 14 2025-04-09T22:22:50Z ARTIFICER 564804 Protected "[[Tensura: Eldritch Wiki/external]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki {{Main page box/start | title = External links }} <div class="mp-links columns-2"> * {{MP link|Official site|link=https://wiki.gg}} * {{MP link|Discord|link=https://discord.gg/rTnST57tuW|image=Discord.svg|size=64x64px}} * {{MP link|Bluesky|link=https://bsky.app/profile/wiki.gg|image=Bluesky.svg|size=64x64px}} * {{MP link|indie.io|link=https://www.indie.io/|image=indie.io.svg|size=64x64px}} </div> {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> bb8190c57bb4cc147764d1c10f218fe4d34e0a49 Meta:Copyrights 4 9 16 2025-04-09T22:22:51Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <!--''[[GAME]]'' content and materials are the intellectual property of their respective owners. -->Content that you make available on {{SITENAME}} is licensed by you to us under our [{{int:wikigg-tos-url}} Terms of Service]. Do not make content available on {{SITENAME}} where you do not have the necessary rights to grant this license. All textual and graphical content on {{SITENAME}} that we may lawfully license is licensed to you under the [https://creativecommons.org/licenses/by-sa/4.0 Creative Commons Attribution-ShareAlike 4.0] license. [[Category:Legal notices]] a5c705cf276359aef94d426ee75d18bbf1e361ac 17 16 2025-04-09T22:22:51Z ARTIFICER 564804 Protected "[[Meta:Copyrights]]" ([Edit=Allow only administrators] (indefinite)) wikitext text/x-wiki <!--''[[GAME]]'' content and materials are the intellectual property of their respective owners. -->Content that you make available on {{SITENAME}} is licensed by you to us under our [{{int:wikigg-tos-url}} Terms of Service]. Do not make content available on {{SITENAME}} where you do not have the necessary rights to grant this license. All textual and graphical content on {{SITENAME}} that we may lawfully license is licensed to you under the [https://creativecommons.org/licenses/by-sa/4.0 Creative Commons Attribution-ShareAlike 4.0] license. [[Category:Legal notices]] a5c705cf276359aef94d426ee75d18bbf1e361ac Module:Infobox 828 10 18 2025-04-09T22:22:52Z ARTIFICER 564804 Importing default loadout Scribunto text/plain -- version 0.1.7 -------------------------------------- -- User settings, you can modify these -------------------------------------- -- if you want to not always use divs in your wiki (as opposed to tables), you can change this default -- just remember to change it back each time you update from the main "branch" on the support wiki! -- you can also control it per infobox with `|useDivs=yes` or `|useDivs=no` local USE_DIVS = true -- `false` or `true` -- default value to show if a param is missing in some but not all tabs. -- set to `nil` (not in quotes) to remove such rows altogether in the tabs where they're missing local TABBED_NONEXIST = nil -- `''` or `nil` or `'N/A'` etc. Don't put nil in quotes. --------------------------------------------------------------------------- -- Do not modify anything below this line unless you know what you're doing --------------------------------------------------------------------------- local h = {} local p = {} local hooks = {} function p.arraymap(frame) -- a lua implementation of Page Forms' arraymap local args = h.overwrite() local items = h.split(args[1], args[2] or ',') for i, item in ipairs(items) do items[i] = args[4]:gsub(args[3], item) end return table.concat(items, args[5] or ',') end function p.preprocess(frame) return frame:preprocess(frame.args[1] or frame:getParent().args[1]) end function p.main(frame) h.registerHooks() h.increment() local args = h.overwrite() local sep = args.sep or ',' h.castArgs(args, sep) if h.castBool(args.setmainimage or 'yes') then h.setMainImage(args.images[1]) end -- suggest to use HIDDENCAT here; will be used for maintenance & gadget imports return h.makeInfobox(args, sep), '[[Category:Pages with DRUID infoboxes]]' end function h.registerHooks() if not mw.title.new('Module:Infobox/Hooks').exists then return end hooks = require('Module:Infobox/Hooks') end function h.runHook(key, ...) if hooks[key] then hooks[key](...) end end function h.increment() -- optional use of VariablesLua for better compatibility local VariablesLua = mw.ext.VariablesLua if VariablesLua == nil then local res -- try to fall back to normal Variables res, h.counter = pcall( function() return mw.getCurrentFrame():callParserFunction('#var', {'DRUID_INFOBOX_ID', 0}) + 1 end ) if res then mw.getCurrentFrame():callParserFunction('#vardefine', {'DRUID_INFOBOX_ID', h.counter}) else -- else use a random number so at least there's some unique id h.counter = math.random(100000000000000000) -- random integer end else h.counter = VariablesLua.var('DRUID_INFOBOX_ID', 0) + 1 VariablesLua.vardefine('DRUID_INFOBOX_ID', h.counter) end end function h.castArgs(args, sep) h.runHook('onCastArgsStart', args, sep, args.kind) args.tabs = h.split(args.tabs or args.image_labels, sep) args.images = h.getImages(args, sep) args.sections = h.split(args.sections, sep) for _, section in ipairs(args.sections) do if h.castBool(args[section .. '_isdata']) then args[section .. 'Data'] = args[section] args[section] = section .. 'Data' args[section .. 'Data_nolabel'] = 'true' -- will be cast later end args[section] = h.split(args[section], sep) args[section .. '_tabs'] = h.split(args[section .. '_tabs'], sep) if #args.tabs > 0 and #args[section .. '_tabs'] > 0 then error(('You cannot specify |tabs= and |%s= at the same time, please pick one'):format(section .. '_tabs')) end end if args.useDivs then USE_DIVS = h.castBool(args.useDivs) end -- this would be in the outer scope, but we're hiding it h.entityType = USE_DIVS and 'div' or 'table' -- key of h.htmlEntities h.runHook('onCastArgsEnd', args, sep, args.kind) end function h.getImages(args, sep) if args.image and not args.images then args.images = args.image end if args.images then return h.split(args.images, sep) end if not args.tabs then return {} end local ret = {} for _, key in ipairs(args.tabs) do if args[key .. '_image'] then ret[#ret+1] = args[key .. '_image'] end end return ret end function h.setMainImage(file) if h.counter > 1 then return end if not file then return end local fileText = file:gsub('.-:', '') fileText = fileText:gsub('^([^|%]]+).*', '%1') -- setmainimage is guaranteed to exist on wiki.gg but may not exist on other wikis -- it's not a crucial piece of functionality so we'll fail silently if it doesn't exist pcall(function() mw.getCurrentFrame():callParserFunction{ name = '#setmainimage', args = { fileText }, } end) end function h.makeInfobox(args, sep) local out = mw.html.create(h.getTag('container')) :addClass('druid-infobox') :addClass('druid-container') :addClass('noexcerpt') :addClass(args.class) -- warning: class can be nil, don't concat anything :attr('id', args.id or ('druid-container-' .. h.counter)) h.runHook('onMakeOutputStart', out, args) if args.kind then out:addClass('druid-container-' .. h.escape(args.kind)) end h.printTitle(out, args) h.printImages(out, args.images, args) for _, section in ipairs(args.sections) do -- cannot begin tagging here because we don't know if any applicable args are present local cols = args[section .. '_columns'] local makeSection = cols and h.makeGridSection or h.makeSection out:node(makeSection(section, args[section], args, tonumber(cols))) end h.runHook('onMakeOutputEnd', out, args) -- category for gadget loading return out, '[[Category:Pages with DRUID infoboxes]]' end function h.printTitle(out, args) local tabs = args.tabs if not tabs or #tabs == 0 then h.printSimpleTitle(out, args) return end if not h.hasComplexData('title', tabs, args) then h.printSimpleTitle(out, args) return end local node = h.printTitleWrapper(out) h.printTabbedDataItem(node, 'title', tabs, args) end function h.printSimpleTitle(out, args) if args.title then local node = h.printTitleWrapper(out) node:wikitext(args.title) end end function h.printTitleWrapper(out) return out:tag(h.getTag('titleOuter')) :tag(h.getTag('titleInner')) :addClass('druid-title') :attr('colspan', 2) end function h.printTabbedDataItem(node, item, tabs, args) -- hasData isn't used in the title case but we will need to track this -- when we're printing section data later on -- so we'll just track it always local hasData = false for i, label in ipairs(tabs) do local div = node:tag('div') :addClass('druid-toggleable-data') :addClass('druid-toggleable') :attr('data-druid', h.counter .. '-' .. i) :attr('data-druid-tab-key', label) if h.getTabbedContent(args, label, item) then hasData = true div:wikitext('\n\n' .. h.getTabbedContent(args, label, item)) div:addClass('druid-toggleable-data-nonempty') else div:addClass('druid-toggleable-data-empty') end if i == 1 then div:addClass('focused') end end return hasData end function h.printImages(out, images, args) if #images == 0 and #args.tabs == 0 then return end -- burden is on the user to format this as an image. this should be done in the infobox template, -- with something like |image={{#if:{{{image|}}}|[[File:{{{image|}}}{{!}}300px{{!}}link=]]}} local td = out:tag(h.getTag('section')) :addClass('druid-section-container') :tag(h.getTag('cell')) :attr('colspan', 2) local tabs = args.tabs local tabTexts = h.getImageTabTexts(tabs, images, args) h.printTabs(td, tabs, tabTexts, false, args) if #images == 0 then return end if #images == 1 then td:addClass('druid-main-image') :wikitext(images[1]) if args.caption then td:tag('div') :addClass('druid-main-image-caption') :wikitext(args.caption) end return end td:addClass('druid-main-images') local imagesContainer = td:tag('div') :addClass('druid-main-images-files') for i, image in ipairs(images) do local container = imagesContainer:tag('div') :addClass('druid-main-images-file') :addClass('druid-toggleable') :attr('data-druid', h.counter .. '-' .. i) :wikitext(image) :attr('data-druid-tab-key', tabs[i]) local labelText if tabs[i] then labelText = args[tabs[i] .. '_label'] or tabs[i] else labelText = '[[Category:Infoboxes missing image labels]]Image ' .. i end if args[labelText .. '_caption'] then container:tag('div') :addClass('druid-main-images-caption') :wikitext(args[labelText .. '_caption']) end if i == 1 then container:addClass('focused') end end end function h.getImageTabTexts(tabs, images, args) if #tabs == 0 and #images <= 1 then return {} end local texts = {} local i = 1 while images[i] or tabs[i] do if tabs[i] then texts[i] = args[tabs[i] .. '_label'] or tabs[i] else texts[i] = '[[Category:Infoboxes missing image labels]]Image ' .. i end i = i + 1 end return texts end function h.printTabs(td, tabs, texts, isSection, args) if #texts == 0 then return end local container = td:tag('div') :addClass('druid-main-images-labels') :addClass('druid-tabs') if isSection then container:addClass('druid-section-tabs') end for i, item in ipairs(tabs) do local label = container:tag('div') :addClass('druid-main-images-label') :addClass('druid-tab') :addClass('druid-toggleable') :attr('data-druid', h.counter .. '-' .. i) :wikitext(texts[i]) :attr('data-druid-tab-key', item) if isSection then label:addClass('druid-section-tab') else label:addClass('druid-title-tab') end if i == 1 then label:addClass('focused') end -- this can be null, don't concat anything here label:addClass(args[item .. '_class']) end end function h.makeGridSection(section, sectionFields, args, numCols) local numItems = h.countItems(sectionFields, section, args) if numItems == 0 then return end local node = mw.html.create(h.getTag('section')) :addClass('druid-section-container') h.printSectionHeader(node, section, args) h.printSectionTabs(node, section, args) local tr = node:tag(h.getTag('row')) :attr('data-druid-section-row', h.escape(section)) if args[section .. '_collapsed'] then tr:addClass('druid-collapsed') end local grid = tr:tag(h.getTag('cell')) :attr('colspan', 2) :addClass('druid-grid-section') :addClass('druid-grid-section-' .. h.escape(section)) :addClass(args[section .. '_class']) -- warning: class can be nil, don't concat anything :tag('div') :addClass('druid-grid') local row, col, i = 1, 1, 1 local sizeOfLastRow = numItems % numCols local lcm = h.getNumGridCols(numItems, sizeOfLastRow, numCols) grid:css('grid-template-columns', ('repeat(%s, 1fr)'):format(lcm)) local size = lcm / numCols for _, item in ipairs(sectionFields) do local node = mw.html.create('div') local shouldPrint = h.printData(node, item, section, args) if shouldPrint then if i == numItems - sizeOfLastRow + 1 then size = lcm / sizeOfLastRow end i = i + 1 local gStart = (col - 1) * size + 1 local gEnd = (col) * size + 1 local itemContainer = grid:tag('div') :addClass('druid-grid-item') :addClass('druid-grid-item-' .. h.escape(item)) :addClass(args[item .. '_class']) -- warning: class can be nil, don't concat anything :css('grid-column', ('%s / %s'):format(gStart, gEnd)) :css('grid-row', row) if not h.castBool(args[item .. '_nolabel']) then h.printLabel(itemContainer:tag('div'), item, args) end itemContainer:node(node) if col == numCols then row = row + 1 col = 1 else col = col + 1 end end end return node end function h.makeSection(section, sectionFields, args) if section == '' then return end -- bruteforce fix for trailing commas local shouldPrint = false local container = mw.html.create(h.getTag('section')) :addClass('druid-section-container') :addClass(args[section .. '_class']) -- warning: class can be nil, don't concat anything h.printSectionHeader(container, section, args) h.printSectionTabs(container, section, args) for _, item in ipairs(sectionFields) do local node = mw.html.create(h.getTag('cell')) local shouldPrintItem = h.printData(node, item, section, args) if shouldPrintItem then shouldPrint = true local tr = container:tag(h.getTag('row')) :addClass('druid-row') :addClass('druid-row-' .. h.escape(item)) :addClass(args[item .. '_class']) -- warning: class can be nil, don't concat anything :attr('data-druid-section-row', h.escape(section)) if args[section .. '_collapsed'] then tr:addClass('druid-collapsed') end if h.castBool(args[item .. '_wide']) or h.castBool(args[item .. '_nolabel']) then node :attr('colspan', 2) :addClass('druid-data-wide') else h.printLabel(tr:tag(h.getTag('label')), item, args) end tr:node(node) end end if not shouldPrint then return nil end return container end function h.countItems(sectionFields, section, args) local numItems = 0 for _, v in ipairs(sectionFields) do -- we aren't actually printing here, but we're finding out if we should print anything -- because we need the count of columns before we print anything in grid data if h.printData(mw.html.create(), v, section, args) then numItems = numItems + 1 end end return numItems end function h.getNumGridCols(numItems, sizeOfLastRow, numCols) if not numCols then return numItems, 1 end if numItems < numCols then return numItems, 1 end if sizeOfLastRow == 0 then return numCols, 1 end local a, b = sizeOfLastRow, numCols while b ~= 0 do a, b = b, a % b end local lcm = sizeOfLastRow * numCols / a return lcm end function h.printLabel(node, item, args) return node :addClass('druid-label') :addClass('druid-label-' .. h.escape(item)) :wikitext(args[item .. '_display'] or args[item .. '_label'] or item) end function h.printData(node, item, section, args) -- prints data to the node -- and also returns whether the item is nonempty or not local hasData = false local sectionTabs = args[section .. '_tabs'] local tabs = args.tabs if sectionTabs and #sectionTabs > 0 then tabs = sectionTabs end if not tabs or #tabs == 0 then return h.printSimpleData(node, item, args) end if not h.hasComplexData(item, tabs, args) then return h.printSimpleData(node, item, args) end hasData = hasData or h.printTabbedDataItem(node, item, tabs, args) if hasData then node:addClass('druid-data') end return hasData end function h.getTabbedContent(args, label, item) return args[label .. '_' .. item] or args[item] or TABBED_NONEXIST end function h.printSimpleData(node, item, args) if args[item] and type(args[item]) ~= 'string' then error(("Invalid use of field %s as both a section and a data value"):format(item)) end if not args[item] then return false end node:addClass('druid-data') :addClass('druid-data-' .. h.escape(item)) :addClass('druid-data-nonempty') :wikitext('\n\n' .. args[item]) return true end function h.hasComplexData(item, tabs, args) for _, v in ipairs(tabs) do if args[v .. '_' .. item] then return true end end return false end function h.printSectionHeader(node, section, args) if h.castBool(args[section .. '_nolabel']) then return end local tr = node:tag(h.getTag('row')) :attr('data-druid-section', h.escape(section)) local th = tr:tag(h.getTag('sectionTitle')) :attr('colspan', 2) :addClass('druid-section') :addClass('druid-section-' .. h.escape(section)) if args[section .. '_collapsible'] or args[section .. '_collapsed'] then tr:addClass('druid-collapsible') if args[section .. '_collapsed'] then tr:addClass('druid-collapsible-collapsed') end end local emptySections = {} for _, label in ipairs(args.tabs) do local hasLabel = false for _, item in ipairs(args[section] or {}) do if h.getTabbedContent(args, label, item) then hasLabel = true end end if not hasLabel then emptySections[label] = true end end if not next(emptySections) then th:wikitext(args[section .. '_label'] or section) return end for i, label in ipairs(args.tabs) do local div = th:tag('div') :addClass('druid-toggleable-heading') :addClass('druid-toggleable') :attr('data-druid', h.counter .. '-' .. i) :wikitext(args[section .. '_label'] or section) -- we are going to print the section content even in empty nodes -- for compatibility with browsers without :has, where hiding empty rows won't happen if emptySections[label] then div:addClass('druid-toggleable-heading-empty') end if i == 1 then div:addClass('focused') end end end function h.printSectionTabs(node, section, args) local tabs = args[section .. '_tabs'] if not tabs or #tabs == 0 then return end local tr = node:tag(h.getTag('sectionTabsOuter')) :attr('data-druid-section', h.escape(section)) local th = tr:tag(h.getTag('sectionTabs')) :attr('colspan', 2) :addClass('druid-section-tabs') :addClass('druid-section-tabs-' .. h.escape(section)) local texts = {} for i, item in ipairs(tabs) do texts[i] = args[item .. '_label'] or item end h.printTabs(th, tabs, texts, true, args) end ---------------------------- -- general utility functions ---------------------------- function h.overwrite() -- this is a generic utility function that collects args from the invoke call & the parent template. -- normally, you merge args with parent template overwriting the invoke call, but -- since we'll be putting markup/formatting into our invoke call, -- we actually want to overwrite what the user sent. local f = mw.getCurrentFrame() local origArgs = f.args local parentArgs = f:getParent().args local args = {} for k, v in pairs(parentArgs) do v = mw.text.trim(v) if v ~= '' then args[k] = v end end for k, v in pairs(origArgs) do v = mw.text.trim(tostring(v)) if v ~= '' then args[k] = v end end return args end -- generic utility functions -- these would normally be provided by other modules, but to make installation easy -- I'm including everything here function h.split(text, pattern, plain) if not text then return {} end local ret = {} for m in h.gsplit(text, pattern, plain) do ret[#ret+1] = m end return ret end function h.gsplit( text, pattern, plain ) if not pattern then pattern = ',' end if not plain then pattern = '%s*' .. pattern .. '%s*' end local s, l = 1, text:len() return function () if s then local e, n = text:find( pattern, s, plain ) local ret if not e then ret = text:sub( s ) s = nil elseif n < e then -- Empty separator! ret = text:sub( s, e ) if e < l then s = e + 1 else s = nil end else ret = e > s and text:sub( s, e - 1 ) or '' s = n + 1 end return ret end end, nil, nil end function h.escape(s) s = s:gsub(' ', '') :gsub('"', '') :gsub("'", '') :gsub("%?", '') :gsub("%%", '') :gsub("%[", '') :gsub("%]", '') :gsub("{", '') :gsub("}", '') :gsub("!", '') return s end -- normally I would make these constants at the top of the file -- but I don't want to mistake them with user-set constants h.boolFalse = { ['false'] = true, ['no'] = true, [''] = true, ['0'] = true, ['nil'] = true } function h.castBool(x) if not x then return false end return not h.boolFalse[tostring(x):lower()] end h.htmlEntities = { table = { container = 'table', titleOuter = 'tr', titleInner = 'th', section = '', sectionTitle = 'th', sectionTabsOuter = 'tr', sectionTabs = 'td', row = 'tr', label = 'th', cell = 'td', }, div = { container = 'div', titleOuter = 'div', titleInner = 'div', section = 'div', sectionTitle = 'div', sectionTabsOuter = 'div', sectionTabs = 'div', row = 'div', label = 'div', cell = 'div', } } function h.getTag(key) -- try not to totally fail here return h.htmlEntities[h.entityType or 'div'][key] end return p 0b872baa88950499ed588906ea3b07f363640076 Module:Infobox/doc 828 11 19 2025-04-09T22:22:52Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{luadoc}} This module enables the creation of [[support:DRUID infoboxes|DRUID infoboxes]]. 0ce687b29fc5e2d6cad14853a8412fa91910000f Module:Navbox 828 12 20 2025-04-09T22:22:52Z ARTIFICER 564804 Importing default loadout Scribunto text/plain -- version 1.2.4 -- config table for RANGER. -- If you want to change the default config, DO NOT change it here, -- please do it via the `onLoadConfig` hook in [[Module:Navbox/Hooks]]. local config = { default_navbox_class = "navigation-not-searchable", -- Base value of the `class` parameter. default_title_class = nil, -- Base value of the `title_class` parameter. default_above_class = nil, -- Base value of the `above_class` parameter. default_below_class = nil, -- Base value of the `below_class` parameter. default_section_class =nil, -- Base value of the `section_class` parameter. default_header_class = nil, -- Base value of the `header_class` parameter. default_group_class = nil, -- Base value of the `group_class` parameter. default_list_class = 'hlist', -- Base value of the `list_class` parameter. default_header_state = nil, -- Base value of the `state` parameter. editlink_hover_message_key = 'Navbox-edit-hover', -- The system message name for hover text of the edit icon. custom_render_handle = nil, -- usually for debugging purposes only. if set, it should be a function accept 2 parameters: `dataTree` and `args`, and return a string as module output. } --------------------------------------------------------------------- -- Argument alias. local CANONICAL_NAMES = { ['titlestyle'] = 'title_style', ['listclass'] = 'list_class', ['groupstyle'] = 'group_style', ['collapsible'] = 'state', ['editlink'] = 'meta', ['editlinks'] = 'meta', ['editicon'] = 'meta', ['edit_link'] = 'meta', ['edit_links'] = 'meta', ['edit_icon'] = 'meta', ['navbar'] = 'meta', ['name'] = 'template', ['evenodd'] = 'striped', ['class'] = 'navbox_class', ['css'] = 'navbox_style', ['style'] = 'navbox_style', ['group'] = '1:group', ['list'] = '1:list', } local DEFAULT_ARGS = { ['meta'] = true, } local STATES = { ['no'] = '', ['off'] = '', ['plain'] = '', ['collapsed'] = 'mw-collapsible mw-collapsed', ['expanded'] = 'mw-collapsible', } local BOOL_FALSE = { ['no'] = true, ['off'] = true, ['false'] = true, } local STRIPED = { ['odd'] = 'striped-odd', ['swap'] = 'striped-odd', ['y'] = 'striped-even', ['yes'] = 'striped-even', ['on'] = 'striped-even', ['even'] = 'striped-even', ['striped'] = 'striped-even', } local NAVBOX_CHILD_INDICATOR = '!!C$H$I$L$D!!' local NAVBOX_CHILD_INDICATOR_LENGTH = string.len( NAVBOX_CHILD_INDICATOR ) local CLASS_PREFIX = 'ranger-' --------------------------------------------------------------------- local p = {} local h = {} -- non-public local hooks = mw.title.new('Module:Navbox/Hooks').exists and require('Module:Navbox/Hooks') or {} --------------------------------------------------------------------- -- For templates: {{#invoke:navbox|main|...}} function p.main(frame) local args = p.mergeArgs(frame) return p.build(args, true) end -- For modules: return require('module:navbox').build(args) -- By default this method will skip the arguments sanitizing phase -- (and onSanitizeArgsStart/onSanitizeArgsEnd hooks). -- Set `doParseArgs` to true to do arguments sanitizing. -- If `customConfig` table is provided, it will be merged into default config table (after onLoadConfig()). -- If `customHooks` table is provided, all default hook handles will be overrided, unprovided hooks will be empty. function p.build(args, doParseArgs, customConfig, customHooks) if customHooks then hooks = customHooks end if doParseArgs then args = h.parseArgs(args) end h.runHook('onLoadConfig', config, args) if customConfig then for k,v in pairs(customConfig) do config[k] = v end end --merge default args for k,v in pairs(DEFAULT_ARGS) do if args[k] == nil then args[k] = DEFAULT_ARGS[k] end end h.runHook('onBuildTreeStart', args) local dataTree = h.buildDataTree(args) h.runHook('onBuildTreeEnd', dataTree, args) if type(config.custom_render_handle) == 'function' then return config.custom_render_handle(dataTree, args) else return h.render(dataTree) end end -- merge args from frame and frame:getParent() -- It may be used when creating custom wrapping navbox module. -- -- For example, Module:PillNavbox -- -- local RANGER = require('Module:Navbox') -- local p = {} -- function p.main(frame) -- return RANGER.build(RANGER.mergeArgs(frame), true, { -- default_navbox_class = 'pill', -- use "pill" style by default. -- }) -- end -- return p -- function p.mergeArgs(frame) local inputArgs = {} for k, v in pairs(frame.args) do v = mw.text.trim(tostring(v)) if v ~= '' then inputArgs[k] = v end end for k, v in pairs(frame:getParent().args) do v = mw.text.trim(v) if v ~= '' then inputArgs[k] = v end end return inputArgs end ------------------------------------------------------------------------ -- equivalent to mw.text.split(str, div, true) for non-empty separator, but can be over 60x faster, since the latter is Unicode-aware. -- Original version credit: http://richard.warburton.it. function h.explode(div, str) if (div=='') then return nil end local pos,arr = 0,{} -- for each divider found for st,sp in function() return string.find(str,div,pos,true) end do arr[#arr+1] = string.sub(str,pos,st-1) -- Attach chars left of current divider pos = sp+1 -- Jump past current divider end arr[#arr+1] = string.sub(str,pos) -- Attach chars right of last divider return arr end function h.parseArgs(inputArgs) h.runHook('onSanitizeArgsStart', inputArgs) local args = {} for k, v in pairs(inputArgs) do if type(k) == 'string' then -- all named args have already been trimmed local key = h.normalizeKey(k) args[key] = h.normalizeValue(key, v) else args[k] = mw.text.trim(v) -- keep number-index arguments (for {{navbox|child|...}}) end end h.runHook('onSanitizeArgsEnd', args, inputArgs) return args end -- Normalize the name string of arguments. -- the normalized form is (index:)?name, in which: -- index is number index such as 1, 1.3, 1.2.45, -- name is in lowercase underscore-case, such as group, group_style -- e.g: header_state, 1.3:list_style -- the input argument name can be: -- * camel-case: listStyle, ListStyle -- * space separated: list style -- * prefix+index+postfix?, and can be in camel-case or space/hyphen separated or mixed: list 1 style, list1, list1Style, list1_style -- * index.name: 1.3.list -- * index_name: 1.3_list (Space separated are treated as underscore separated, therefore 1.3 list are vaild too) function h.normalizeKey(s) -- camel-case to lowercase underscore-case s = s:gsub('%l%f[%u]', '%0_') -- listStyle to list_style s = (s:gsub(' ', '_')):lower() -- space to underscore s = s:gsub('%l%f[%d]', '%0_') -- group1* to group_1* s = s:gsub('%d%f[%l]', '%0_') -- *1style to *1_style -- number format x_y_z to x.y.z s = s:gsub('(%d)_%f[%d]', '%1%.') -- move index to the beginning: -- group_1.2_style to 1.2:group_style -- group_1 to 1:group s = s:gsub('^([%l_]+)_([%d%.]+)', '%2:%1') -- support index.name and index_name: -- 1.2.group / 1.2_group to 1.2:group s = s:gsub('^([%d%.]+)[%._]%f[%l]', '%1:') -- now the key should be in normalized form, if the origin key is vaild -- standardize *_css to *_style s = s:gsub('_css$', '_style') -- standardize *collapsible to *state s = s:gsub('collapsible$', 'state') -- standardize all aliases to the canonical name return CANONICAL_NAMES[s] or s end function h.normalizeValue(k, v) k = tostring(k) if k:find('_style$') then v = (v .. ';'):gsub(';;', ';') return v elseif k:find('state$') then return STATES[v] elseif k == 'striped' then return STRIPED[v] elseif k == 'meta' then return not BOOL_FALSE[v] elseif v:sub(1, 2) == '{|' or v:match('^[*:;#]') then -- Applying nowrap to lines in a table does not make sense. -- Add newlines to compensate for trim of x in |parm=x in a template. return '\n' .. v ..'\n' end return v end -- parse arguments, convert them to structured data tree function h.buildDataTree(args) -- parse args to a tree local tree = h.buildTree(args) -- build root navbox data local data = h.buildNavboxData(tree.info) -- Recursively build section tree if tree.children then data.sections = h.buildSections(tree.children, { listClass = h.mergeAttrs(args.list_class, config.default_list_class), listStyle = args.list_style, groupClass = h.mergeAttrs(args.group_class, config.default_group_class), groupStyle = args.group_style, sectionClass = h.mergeAttrs(args.section_class, config.default_section_class), sectionStyle = args.section_style, headerClass = h.mergeAttrs(args.header_class, config.default_header_class), headerStyle = args.header_style, headerState = args.header_state or config.default_header_state, }) end if args[1] == 'child' then data.CHILD_MODE = true end return data end function h.buildSections(list, defaults) local sections = {} local section = nil for k, node in h.orderedPairs(list) do local info = node.info or {} --start a new section if needed if info.header or not section then section = { class = h.mergeAttrs(info.section_class, defaults.sectionClass), style = h.mergeAttrs(info.section_style, defaults.sectionStyle), body = {} } -- Section header if needed. -- If the value of a `|header_n=` is two or more consecutive "-" characters (e.g. --, -----), -- it means start a new section without header, and the new section will be not collapsable. if info.header and not string.match(info.header, '^%-%-+$') then section.header = { content = info.header, class = h.mergeAttrs(info.header_class, defaults.headerClass), style = h.mergeAttrs(info.header_style, defaults.headerStyle), } section.state = info.state or defaults.headerState or 'mw-collapsible' end sections[#sections+1] = section end -- above/below for this section if info.above then section.above = { content = info.above, class= h.mergeAttrs(info.above_class, config.default_above_class), style = info.above_style, } end if info.below then section.below = { content = info.below, class= h.mergeAttrs(info.below_class, config.default_below_class), style = info.below_style, } end -- this group+list row if info.group or info.list or node.children then local row = {} section.body[#section.body+1] = row if info.group then row.group = { content = info.group, class = h.mergeAttrs(info.group_class, defaults.groupClass), style = h.mergeAttrs(info.group_style, defaults.groupStyle), } end if info.list then if string.sub(info.list, 1, NAVBOX_CHILD_INDICATOR_LENGTH) == NAVBOX_CHILD_INDICATOR then -- it is from {{navbox|child| ... }} row.sections = mw.text.jsonDecode(string.sub(info.list, NAVBOX_CHILD_INDICATOR_LENGTH+1)) else row.list = { content = info.list, class = h.mergeAttrs(info.list_class, defaults.listClass), style = h.mergeAttrs(info.list_style, defaults.listStyle), } end end -- sub-nodes, will override {{navbox|child| ... }} if node.children then row.sections = h.buildSections(node.children, defaults) end end end -- flatten if needed: -- If a section has only one list with no content and no corresponding group but has sublists, these sublists will be moved to upper level. for _, sect in ipairs(sections) do if #sect.body == 1 then local node = sect.body[1] if not node.group and not node.list and node.sections and #node.sections == 1 and not node.sections[1].header then sect.body = node.sections[1].body end end end return sections end function h.buildNavboxData(info) local data = { state = info.state or 'mw-collapsible', -- here we need a default value for empty input striped = info.striped, class = h.mergeAttrs(info.navbox_class, config.default_navbox_class), style = info.navbox_style, } -- data for titlebar if info.title or info.meta or data.state ~= '' then data.title = { content = info.title, class = h.mergeAttrs(info.title_class, config.default_title_class), style = info.title_style, } if info.meta then data.metaLinks = { link = info.meta_link, -- will be used as [[$link|$text]] url = info.meta_url, -- will be used as [$url $text], only if there is no data.metaLinks.link text = info.meta_text, --hovertext } if not info.meta_link and not info.meta_url then -- default link target local title = mw.title.new(info.template or mw.getCurrentFrame():getParent():getTitle(), 'Template') if not title then error('Invalid title ' .. info.template) end data.metaLinks.link = title.fullText end if not info.meta_text then local msg = mw.message.new(config.editlink_hover_message_key) data.metaLinks.text = msg:exists() and msg:plain() or 'View or edit this template' end end end -- above/below if info.above then data.above = { content = info.above, class= h.mergeAttrs(info.above_class, config.default_above_class), style = info.above_style, } end if info.below then data.below = { content = info.below, class= h.mergeAttrs(info.below_class, config.default_below_class), style = info.below_style, } end return data end -- parse arguments, convert them into a tree based on their index -- each node on tree is { info = { #data for this node# }, children = {#children nodes#} } function h.buildTree(args, defaults) local tree = { info = {} } local check = function(key, value) local index, name = string.match(key, '^([%d%.]+):(.+)$') -- no number index found, for root node if not index then tree.info[key] = value return end -- filter invalid number index if string.match(index, '^%.') or string.match(index, '%.$') or string.match(index, '%.%.') then return end -- find the node that matches the index in the tree local arr = h.explode('.', index) local node = tree for _, v in ipairs(arr) do v = tonumber(v) if not node.children then node.children = {} end if not node.children[v] then node.children[v] = { info = {} } end node = node.children[v] end node.info[name] = value end for k,v in pairs(args) do check(k, v) end return tree end function h.render(data) -- handle {{navbox|child|...}} syntax if data.CHILD_MODE then return NAVBOX_CHILD_INDICATOR..mw.text.jsonEncode(data.sections) end ----- normal case ----- local out = mw.html.create() -- build navbox container local navbox = out:tag('div') :attr('role', 'navigation'):attr('aria-label', 'Navbox') :addClass(CLASS_PREFIX..'navbox') :addClass(data.class) :addClass(data.striped) :addClass(data.state) :cssText(data.style) --title bar if data.title then local titlebar = navbox:tag('div'):addClass(CLASS_PREFIX..'title') titlebar:tag('div'):addClass('mw-collapsible-toggle-placeholder') if data.metaLinks then titlebar:node(h.renderMetaLinks(data.metaLinks)) end if data.title then titlebar:addClass(data.title.class):tag('div') :addClass(CLASS_PREFIX..'title-text') :addClass(data.title.class) :cssText(data.title.style) :wikitext(data.title.content) end end --above if data.above then navbox:tag('div') :addClass(CLASS_PREFIX..'above mw-collapsible-content') :addClass(data.above.class) :cssText(data.above.style) :wikitext(data.above.content) :attr('id', (not data.title) and mw.uri.anchorEncode(data.above.content) or nil) -- id for aria-labelledby attribute, if no title end -- sections if data.sections then h.renderSections(data.sections, navbox, 0, true) else -- Insert a blank section for completely empty navbox to ensure it behaves correctly when collapsed. if not data.above and not data.below then navbox:tag('div'):addClass(CLASS_PREFIX..'section mw-collapsible-content') end end --below if data.below then navbox:tag('div') :addClass(CLASS_PREFIX..'below mw-collapsible-content') :addClass(data.below.class) :cssText(data.below.style) :wikitext(data.below.content) end return tostring(out)..'[[Category:Pages with navboxes]]' -- suggest to use HIDDENCAT here; will be used for maintenance & gadget imports end function h.renderSections(data, container, level, even) for i,sect in ipairs(data) do --section box local section = container:tag('div') :addClass(CLASS_PREFIX..'section mw-collapsible-content') :addClass(sect.class) :addClass(sect.state) :cssText(sect.style) -- section header if sect.header then section:tag('div') :addClass(CLASS_PREFIX..'header') :addClass(sect.header.class) :cssText(sect.header.style) :tag('div'):addClass('mw-collapsible-toggle-placeholder'):done() :tag('div'):addClass(CLASS_PREFIX..'header-text'):wikitext(sect.header.content) end -- above: if sect.above then section:tag('div') :addClass(CLASS_PREFIX..'above mw-collapsible-content') :addClass(sect.above.class) :cssText(sect.above.style) :wikitext(sect.above.content) end -- body: groups&lists local box = section:tag('div'):addClass(CLASS_PREFIX..'section-body mw-collapsible-content') even = h.renderBody(sect.body, box, level, (level==0) and true or even) -- reset even status each section -- below: if sect.below then section:tag('div') :addClass(CLASS_PREFIX..'below mw-collapsible-content') :addClass(sect.below.class) :cssText(sect.below.style) :wikitext(sect.below.content) end end return even end function h.renderMetaLinks(info) local box = mw.html.create('span'):addClass(CLASS_PREFIX..'meta') local meta = box:tag('span'):addClass('nv nv-view') if info.link then meta:wikitext('[['..info.link..'|') :tag('span'):wikitext(info.text):attr('title', info.text):done() :wikitext(']]') elseif info.url then meta:wikitext('['..info.url..' ') :tag('span'):wikitext(info.text):attr('title', info.text):done() :wikitext(']') end return box end function h.renderBody(info, box, level, even) local count = 0 for _,v in h.orderedPairs(info) do if v.group or v.list or v.sections then count = count + 1 -- row container local row = box:tag('div'):addClass(CLASS_PREFIX..'row') -- group cell if v.group or (v.sections and level > 0 and not v.list) then local groupCell = row:tag('div') :addClass(CLASS_PREFIX..'group level-'..level) :addClass((level > 0) and CLASS_PREFIX..'subgroup' or nil) local groupContentWrap = groupCell:tag('div'):addClass(CLASS_PREFIX..'wrap') if v.group then groupCell:addClass(v.group.class):cssText(v.group.style) groupContentWrap:wikitext(v.group.content) else groupCell:addClass('empty') row:addClass('empty-group-list') end else row:addClass('empty-group') end -- list cell local listCell = row:tag('div'):addClass(CLASS_PREFIX..'listbox') if not v.list and not v.sections then listCell:addClass('empty') row:addClass('empty-list') end if v.list or (v.group and not v.sections) then --listCell:node(h.renderList(v['list'] or '', k, level, args)) even = not even -- flip even/odd status local cell = listCell:tag('div') :addClass(CLASS_PREFIX..'wrap') :addClass(even and CLASS_PREFIX..'even' or CLASS_PREFIX..'odd') if v.list then cell:addClass(v.list.class):cssText(v.list.style) :tag('div'):addClass(CLASS_PREFIX..'list'):wikitext(v.list.content) end end if v.sections then local sublistBox = listCell:tag('div'):addClass(CLASS_PREFIX..'sublist level-'..level) even = h.renderSections(v.sections, sublistBox, level+1, even) end end end if count > 0 then box:css('--count', count) -- for flex-grow end return even end -- pairs, but sort the keys alphabetically function h.orderedPairs(t, f) local a = {} for n in pairs(t) do table.insert(a, n) end table.sort(a, f) local i = 0 -- iterator variable local iter = function () -- iterator function i = i + 1 if a[i] == nil then return nil else return a[i], t[a[i]] end end return iter end -- For cascading parameters, such as style or class, they are merged in exact order (from general to specific). -- Any parameter starting with multiple hyphens(minus signs) will terminate the cascade. -- An example: -- For group_1.1, its style is affected by parameters |group_1.1_style=... , |subgroup_level_1_style=... , and |subgroup_style=... . -- If we have |group_1.1_style= color:red; |subgroup_level_1_style= font-weight: bold; and |subgroup_style= color: green; , -- the style of group_1.1 will be style="color:green; font-weight: bold; color: red;" ; -- if we have |group_1.1_style= -- color:red; |subgroup_level_1_style= font-weight: bold; and |subgroup_style= color: green; , -- the style of group_1.1 will be style="color: red;" only, and the cascade is no longer performed for |subgroup_level_1_style and |subgroup_style. function h.mergeAttrs(...) local trim = mw.text.trim local s = '' for i=1, select('#', ...) do local v = trim(select(i, ...) or '') local str = string.match(v, '^%-%-+(.*)$') if str then s = trim(str..' '..s) break else s = trim(v..' '..s) end end if s == '' then s = nil end return s end function h.runHook(key, ...) if hooks[key] then hooks[key](...) end end ----------------------------------------------- return p 3708af7780e043415ec8ae2dc63d8fc36bfe6e8d Module:ArgsUtil 828 13 21 2025-04-09T22:22:53Z ARTIFICER 564804 Importing default loadout Scribunto text/plain local p = {} function p.merge() local f = mw.getCurrentFrame() local origArgs = f.args local parentArgs = f:getParent().args local args = {} for k, v in pairs(origArgs) do v = mw.text.trim(tostring(v)) if v ~= '' then args[k] = v end end for k, v in pairs(parentArgs) do v = mw.text.trim(v) if v ~= '' then args[k] = v end end return args end return p 1d1b2105bd857dcc5e33c8c0a8a780f67cbae72e Module:ArgsUtil/doc 828 14 22 2025-04-09T22:22:53Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This is a basic module for processing args. Usage: <syntaxhighlight lang="lua"> local util_args = require('Module:ArgsUtil') local p = {} function p.main(frame) local args = util_args.merge() -- it is not necessary to pass a `frame` object; `merge` will generate its own mw.logObject(args) -- `args` now contains args passed via the template merged with defaults provided directly via the invoke. -- anything the user sent via the template will be given priority. end return p </syntaxhighlight> == Extending this module == By design, {{ml|ArgsUtil}} is shipped with only a single function and no customization available; this simplifies documentation and covers nearly all use cases. An extended version of this module is available at [[support:Module:ArgsUtil|Module:ArgsUtil on the support wiki]] if you want additional functionality; and you can of course feel free to modify this module on your own wiki as needed. 6fc2a23dcff62ac5a222903e46bc56c07b0a2b1f Module:Template link 828 15 23 2025-04-09T22:22:54Z ARTIFICER 564804 Importing default loadout Scribunto text/plain -- This code is adapted from Wikipedia -- For the original, please see: https://en.wikipedia.org/wiki/Module:Template_link_general -- This implements Template:Tlg local getArgs = require('Module:ArgsUtil').merge local p = {} -- Is a string non-empty? local function _ne(s) return s ~= nil and s ~= "" end local nw = mw.text.nowiki local function addTemplate(s) local i, _ = s:find(':', 1, true) if i == nil then return 'Template:' .. s end local ns = s:sub(1, i - 1) if ns == '' or mw.site.namespaces[ns] then return s else return 'Template:' .. s end end local function trimTemplate(s) local needle = 'template:' if s:sub(1, needle:len()):lower() == needle then return s:sub(needle:len() + 1) else return s end end local function linkTitle(args) if _ne(args.nolink) then return args[1] end local titleObj local titlePart = '[[' if args[1] then -- This handles :Page and other NS titleObj = mw.title.new(args[1], 'Template') else titleObj = mw.title.getCurrentTitle() end titlePart = titlePart .. (titleObj ~= nil and titleObj.fullText or addTemplate(args[1])) local textPart = args.alttext if not _ne(textPart) then if titleObj ~= nil then textPart = titleObj:inNamespace("Template") and args[1] or titleObj.fullText else -- redlink textPart = args[1] end end if _ne(args.subst) then -- HACK: the ns thing above is probably broken textPart = 'subst:' .. textPart end if _ne(args.brace) then textPart = nw('{{') .. textPart .. nw('}}') elseif _ne(args.braceinside) then textPart = nw('{') .. textPart .. nw('}') end titlePart = titlePart .. '|' .. textPart .. ']]' if _ne(args.braceinside) then titlePart = nw('{') .. titlePart .. nw('}') end return titlePart end function p.main(frame) local args = getArgs() return p._main(args) end function p._main(args) local bold = _ne(args.bold) or _ne(args.boldlink) or _ne(args.boldname) local italic = _ne(args.italic) or _ne(args.italics) local dontBrace = _ne(args.brace) or _ne(args.braceinside) local code = _ne(args.code) or _ne(args.tt) local show_result = _ne(args._show_result) local expand = _ne(args._expand) -- Build the link part local titlePart = linkTitle(args) if bold then titlePart = "'''" .. titlePart .. "'''" end if _ne(args.nowrapname) then titlePart = '<span class="nowrap">' .. titlePart .. '</span>' end -- Build the arguments local textPart = "" local textPartBuffer = "&#124;" local codeArguments = {} local codeArgumentsString = "" local i = 2 local j = 1 while args[i] do local val = args[i] if val ~= "" then if _ne(args.nowiki) then -- Unstrip nowiki tags first because calling nw on something that already contains nowiki tags will -- mangle the nowiki strip marker and result in literal UNIQ...QINU showing up val = nw(mw.text.unstripNoWiki(val)) end local k, v = string.match(val, "(.*)=(.*)") if not k then codeArguments[j] = val j = j + 1 else codeArguments[k] = v end codeArgumentsString = codeArgumentsString .. textPartBuffer .. val if italic then val = '<span style="font-style:italic;">' .. val .. '</span>' end textPart = textPart .. textPartBuffer .. val end i = i + 1 end -- final wrap local ret = titlePart .. textPart if not dontBrace then ret = nw('{{') .. ret .. nw('}}') end if _ne(args.a) then ret = nw('*') .. '&nbsp;' .. ret end if _ne(args.kbd) then ret = '<kbd>' .. ret .. '</kbd>' end if code then ret = '<code>' .. ret .. '</code>' elseif _ne(args.plaincode) then ret = '<code style="border:none;background:transparent;">' .. ret .. '</code>' end if _ne(args.nowrap) then ret = '<span class="nowrap">' .. ret .. '</span>' end --[[ Wrap as html?? local span = mw.html.create('span') span:wikitext(ret) --]] if _ne(args.debug) then ret = ret .. '\n<pre>' .. mw.text.encode(mw.dumpObject(args)) .. '</pre>' end if show_result then local result = mw.getCurrentFrame():expandTemplate{title = addTemplate(args[1]), args = codeArguments} ret = ret .. " β†’ " .. result end if expand then local query = mw.text.encode('{{' .. addTemplate(args[1]) .. string.gsub(codeArgumentsString, textPartBuffer, "|") .. '}}') local url = mw.uri.fullUrl('special:ExpandTemplates', 'wpInput=' .. query) mw.log() ret = ret .. " [" .. tostring(url) .. "]" end return ret end return p 45d40a4bff9a1d0eb4274f56fb2f17849aa68728 Module:Template link/doc 828 16 24 2025-04-09T22:22:54Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{From Wikipedia|Module:Template link general}} 1a395265ccbd055518c1d14b52362cc148b89c81 Module:Main page 828 17 25 2025-04-09T22:22:55Z ARTIFICER 564804 Importing default loadout Scribunto text/plain local p = {} local h = {} -- merge args from frame and frame:getParent() function h.mergeArgs(frame) local inputArgs = {} for k, v in pairs(frame.args) do v = mw.text.trim(tostring(v)) if v ~= '' then inputArgs[k] = v end end for k, v in pairs(frame:getParent().args) do v = mw.text.trim(v) if v ~= '' then inputArgs[k] = v end end return inputArgs end -------------------------------------------------------------------- function p.main(frame) local args = h.mergeArgs(frame) -- use the rootpage parameter if given, otherwise use the current page name local rootpage = args['rootpage'] or mw.title.getCurrentTitle().fullText -- parse the arguments into CSS variables that contain legal syntax for grid-template-areas local desktop = "--main-page-layout--desktop: '" .. string.gsub(args['desktop'], '\n', "' '") .. "';" local tablet = "--main-page-layout--tablet: '" .. string.gsub(args['tablet' ], '\n', "' '") .. "';" local mobile = "--main-page-layout--mobile: '" .. string.gsub(args['mobile' ], '\n', "' '") .. "';" -- grid-template-columns overrides local desktop_cols = mw.text.trim(string.gsub(args['desktop-columns'] or '', ';', '')) local tablet_cols = mw.text.trim(string.gsub(args[ 'tablet-columns'] or '', ';', '')) local mobile_cols = mw.text.trim(string.gsub(args[ 'mobile-columns'] or '', ';', '')) -- set the variables used by grid-template-columns if desktop_cols ~= '' then desktop = desktop .. '--main-page-layout-columns--desktop: '.. desktop_cols ..';' end if tablet_cols ~= '' then tablet = tablet .. '--main-page-layout-columns--tablet: '.. tablet_cols ..';' end if mobile_cols ~= '' then mobile = mobile .. '--main-page-layout-columns--mobile: '.. mobile_cols ..';' end local boxes = {} -- list of all boxes as a simple list, used to set the order of appearance local seen_boxes = {} -- list of all boxes as a k:v pair, used to filter out duplicates local boxes_in_layout = {} -- list of layouts, then list of all boxes in that layout local missing_boxes = {} -- list of layouts, then list of boxes that are *not* included in that layout -- add every box referenced in the layout rules once function parse_layout(layout) for _,name in pairs(mw.text.split(mw.text.trim(args[layout]), '%s')) do if not seen_boxes[name] then boxes[#boxes+1] = name -- table with numerical keys for set html order seen_boxes[name] = true end boxes_in_layout[layout][name] = true end end local layouts = {'desktop', 'tablet', 'mobile'} -- loop through the layouts the first time to set up the box lists for _,layout in pairs(layouts) do boxes_in_layout[layout] = {} missing_boxes[layout] = {} parse_layout(layout) end -- then loop through the layouts a second time because we need to compare those completed lists to check for missing boxes for _,layout in pairs(layouts) do for _,name in pairs(boxes) do if boxes_in_layout[layout][name] ~= true then mw.addWarning( 'WARNING: the \"' .. name .. '\" box is missing in the ' .. layout .. ' layout. If this is intentional, you can ignore this warning.') missing_boxes[layout][name] = true end end end -- start our mp-container wrapper, and add our variables from earlier as inline styles to declare them -- the rootpage is added to the dataset so it's easily accessible by mp-edit-links.js and it doesn't need to make its own API call local output = mw.html.create() local container = output:tag('div'):attr('id', 'mp-container'):cssText(desktop .. tablet .. mobile):attr('data-rootpage', rootpage) -- loop through boxes and add the relevant main page subpages into the output for _,box in pairs(boxes) do mw.ext.VariablesLua.vardefine('imp-variable-id', box) -- using a vardefine lets us pass this directly to the template without going through the user-facing box local pre_vardefine = '' for _,layout in pairs(layouts) do pre_vardefine = pre_vardefine .. (missing_boxes[layout][box] and '0' or '1') .. ',' end -- formatted as a psuedo-bitmask to reduce variable usage, "<display-on-destop>, <display-on-tablet>, <display-on-mobile>," each value is 0 or 1 (trailing comma is insignificant) -- expected to be used with #explode in the template receiving the variable mw.ext.VariablesLua.vardefine('imp-variable-display-box', pre_vardefine) if mw.title.new(rootpage .. '/' .. box).exists then container:wikitext(frame:expandTemplate{ title = ':' .. rootpage .. '/' .. box}) else container:wikitext(frame:expandTemplate{ title = 'Main page box/missing', args = { box, rootpage = rootpage}}) -- See [[Template:Main page box/missing]] end end return output end return p 16b810f2109fd3f6b08e48f8e138808636455aa2 Module:Navbox/Hooks 828 18 26 2025-04-09T22:22:56Z ARTIFICER 564804 Importing default loadout Scribunto text/plain -- as of Module:Navbox version 1.2.2 local p = {} --------------------------------------------------- -- Runs before RANGER does args sanitizing -- `inputArgs` is the merged input arguments from the template (frame.args + frame:getParent().args) function p.onSanitizeArgsStart(inputArgs) end -- Runs after RANGER does args sanitizing -- `args` parameter is the sanitized arguments table with normalized keys (in lowercase underscore-case with canonical names) and normalized values. function p.onSanitizeArgsEnd(args, inputArgs) end -- Runs when RANGER loads config table (after onSanitizeArgsEnd and before onBuildTreeStart) -- `config` parameter is the default config table. -- `args` parameter is the sanitized arguments table (has not yet merged the DEFAUT_ARGS table). function p.onLoadConfig(config, args) end -- Runs before RANGER converts sanitized arguments table to structured data tree -- `args` parameter is the sanitized arguments table that has the DEFAUT_ARGS merged. function p.onBuildTreeStart(args) end -- Runs after RANGER converts sanitized arguments table to structured data tree -- `tree` parameter is the structured data. -- `args` parameter is the sanitized arguments table. function p.onBuildTreeEnd(tree, args) end --------------------------------------------------- return p 54e0c53295a318f2b18e70dc64e5b09867e03128 Module:Navbox/doc 828 19 27 2025-04-09T22:22:56Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This module is used by [[Template:Navbox]]. 87d5c562165cd75b963e03aa428c80413bacff30 Template:Extension DPL 10 20 28 2025-04-09T22:22:57Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <noinclude>This page was automatically created. It serves as an anchor page for all '''[[Special:WhatLinksHere/Template:Extension_DPL|invocations]]''' of [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:DynamicPageList3 Extension:DynamicPageList3].</noinclude> 087ffd4625ae7b1fea3436ec3f929e82ee739d29 Template:Documentation 10 21 29 2025-04-09T22:22:57Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- --><div class="documentation"><!-- --><div class="documentation-header"><!-- -->[[File:Template-{{#ifexist:{{#vardefineecho:docpage|{{{1|Template:{{#replace:{{{1|{{PAGENAME}}/doc}}}|Template:|}}}}}<!-- end vde -->}}|{{#if:{{{baddoc|}}}|bad}}|no}}info.svg|50px|link=]] <!-- --><span style="font-weight: bold; font-size: 125%; margin-right: 10px;">Documentation</span> <!-- -->{{#ifeq:{{SUBPAGENAME}}|doc|<!--nothing-->|<!-- -->{{#ifexist:{{#var:docpage}}|<!-- --><span style="font-size: 90%; font-style: italic;"><!-- -->[{{fullurl:{{#var:docpage}}|action=edit}} Edit] this documentation at [{{fullurl:{{#var:docpage}}|redirect=no}} {{FULLPAGENAMEE:{{#var:docpage}}}}].<!-- --></span><!-- -->}}<!-- -->}}<!-- --><div style="text-align: right; margin-left: 5px;"><!-- -->([{{fullurl:{{FULLPAGENAMEE}}/doc|action=edit}} edit] β€’ [{{fullurl:{{FULLPAGENAMEE}}/doc|action=history}} history] β€’ [{{fullurl:{{FULLPAGENAMEE}}|action=purge}} purge])<!-- --></div><!-- --></div><!-- <!-- leave line break here --> {{#if:{{{lua|}}}|{{UsesLua|{{{lua}}} }} }} <!-- documentation text/error box begins here --> <div style="border-radius: 5px; border: 2px solid var(--wiki-content-border-color); margin: 0.5em auto 1em; padding: 0.8em 1.2em; background: var(--wiki-content-background-color--secondary);"> <!-- -->{{#ifexist:{{#var:docpage}}|<!-- If there is documentation --> {{ {{#var:docpage}} }} <!-- Else -->|<!-- -->No documentation subpage exists yet for this template. [{{fullurl:{{FULLPAGENAMEE:Template:{{{1|{{PAGENAME}}}}}}}/doc|action=edit&preload=Template:Documentation/preload}} Create one now].<!-- -->[[Category:Templates with no documentation]]<!-- -->}}<!-- leave line break here --> <!-- documentation text/error box ends here --> </div> <!-- -->{{#ifeq:{{SUBPAGENAME}}|doc|<!-- -->{{#ifeq:{{BASEPAGENAME}}|Doc|<!--nothing-->|<!-- only if page is not Template:Documentation -->This is the documentation page, it should be transcluded into the main template page. See {{tlx|doc}} for more information. <!-- -->[[Category:Template documentation]]<!-- -->}}<!-- -->}}<!-- --></div><!-- --></includeonly><!-- --><noinclude>{{Documentation}} [[Category:Documentation templates| ]] </noinclude> c4c3117e700d89854599fb352f60792ed2165be0 Template:Luadoc 10 22 30 2025-04-09T22:22:58Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <noinclude>[[Category:Documentation templates]]</noinclude>{{#ifeq:{{int:scribunto-doc-page-name|{{ROOTPAGENAME}}}}|{{FULLPAGENAME}}||<div class="luadoc">Edit the [[{{int:scribunto-doc-page-name|{{ROOTPAGENAME}}}}|documentation or categories]] for this module. {{#ifexist:{{FULLPAGENAME}}/i18n|This module has an [[/i18n|i18n file]].}}</div>}} 37de49949dfa0f16975ff4e9850b4573ec388cb6 Template:MP link 10 23 31 2025-04-09T22:22:58Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- Variables -->{{#vardefine:link|{{{link|{{{1|}}}}}}}}<!-- Image-->{{#if:{{{image|}}}|[[File:{{#replace:{{{image|}}}|File:}}|{{{size|42px}}}|link={{#var:link}}{{#if:{{{altText|}}}|{{!}}alt={{{altText|}}}}}|class={{{imageClass|}}}]]}}<!-- Link below the image -->{{#if:{{{1|}}}|<!-- If it's an external link, use external link syntax -->{{#if:{{#pos:{{{link|}}}|http}}|[{{{link|}}} {{{1|}}}]|<!-- Otherwise use normal syntax the ifeq, pos, sub combo is filtering out a leading :, so that we can add our own without doubling up, allowing easy category linking -->[[:{{#ifeq:{{#pos:{{#var:link}}|:}}|0|{{#sub:{{#var:link}}|1}}|{{#var:link}}}}|{{{1|}}}]]}} }}</includeonly><noinclude> {{doc}} [[Category:Main page templates]] </noinclude> be5325327a3e6c626069e9f98a5dd2b9f283042c Template:MP link/doc 10 24 32 2025-04-09T22:22:59Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This creates one of the stylized and formatted links on the [[{{MediaWiki:Mainpage}}|main page]]. == Usage == Groups of this template should be wrapped inside of <code><nowiki><div class="mp-links"></div></nowiki></code> and each entry should be a separate line in an [[wikipedia:Help:Lists#Basically|unordered list]]. This div can be given one of the classes <code>columns-x</code> where x is a number from 1 to 7, and the links will line up in that many columns if space permits (default is 3). The div can also optionally be given the class <code>stretch</code> and it will stretch the list vertically to fill empty space. See [[Mediawiki:Common.css]] for the full definitions of these classes and styling for this template. ===Parameters=== <templatedata> { "description": { "en": "Creates stylized and formatted links on the main page." }, "format": "inline", "params": { "1": { "label": { "en": "Text" }, "description": { "en": "The text to display. If the link parameter is not given, this will also be the link target." }, "example": "Stuff", "type": "string", "suggested": true }, "link": { "label": { "en": "Link" }, "description": { "en": "The target page for the link, if different than the display text." }, "required": false, "example": "Main Page", "type": "wiki-page-name" }, "image": { "label": { "en": "Image" }, "description": { "en": "An image to display with the link." }, "required": false, "suggested": true, "type": "wiki-file-name" }, "size": { "label": { "en": "Image size" }, "description": { "en": "The size of the image, in px." }, "required": false, "default": "42px", "type": "string" }, "imageClass": { "label": "Image class", "description": "A class to give directly to the image", "example": "invert-on-dark", "type": "string", "suggestedvalues": [ "invert-on-dark", "invert-on-light" ] }, "altText": { "label": "Alt text", "description": "Alt text to describe the image", "example": "Wiki logo", "type": "string", "suggested": true } }, "paramOrder": [ "1", "link", "image", "size", "imageClass", "altText" ] } </templatedata> ==Examples== <pre> <div class="mp-links columns-3"> * {{MP link|Stuff|link=Special:Random|image=Site-logo.png|size=42px}} * {{MP link|Things|link=Special:Random}} * {{MP link|Other stuff|link=Special:Random|image=Site-logo.png|size=42px}} </div> </pre> Produces: <div class="mp-links columns-3"> * {{MP link|Stuff|link=Special:Random|image=Site-logo.png|size=42px}} * {{MP link|Things|link=Special:Random}} * {{MP link|Other stuff|link=Special:Random|image=Site-logo.png|size=42px}} </div> <noinclude> [[Category:Template documentation]] </noinclude> aabad7f43ba29d72dbebc5a849f202294e406735 Template:Doc 10 25 33 2025-04-09T22:22:59Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:Documentation]] 041222999c2c4765a4663432058f50686fb65f40 Template:Uses Lua 10 26 34 2025-04-09T22:23:00Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{Ambox | color = darkblue | icon = Lua logo.svg | title= This template uses one or more modules written in the Lua programming language. | message = For more information, see [[wikipedia:Wikipedia:Lua|Wikipedia:Lua]] or the [[mw:Extension:Scribunto/Lua reference manual|Lua reference manual on mediawiki.org]]. Modules used include: {{#if:{{{1|}}}|{{#arraymap:{{{1|}}}|,|%s|'''[[Module:%s|%s]]'''}}|''None provided''}}. | tiny = {{{tiny|}}} | class = {{{class|}}} }}</includeonly><noinclude>{{doc|Template:Ambox/doc}}</noinclude> 1930c9b36136a5562cfaf7584f811d62b114a58a Template:Ambox 10 27 35 2025-04-09T22:23:01Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- --><div class="ambox {{{class|}}} {{#ifeq:{{lc:{{{tiny|}}}}}|yes|tiny}}"<!-- --> style="{{#if:{{{color|}}}|--ambox-color: {{{color|}}};<!-- /if -->}}"><!-- --><div class="ambox-icon metadata <!-- the metadata class stops it from showing in MediaViewer -->">[[File:{{{icon|Ambox banner content.svg}}}{{!}}{{#ifeq:{{lc:{{{tiny|}}}}}|yes|48x20px|48x48px}}|alt=|link=]]</div><!-- --><div class="ambox-content"><!-- start ambox content -->{{#if: {{{title|}}} | <p class="ambox-title">{{{title}}}</p> }}<!-- --><p class="ambox-text">{{{message|No text provided.}}}{{#if: {{{date|}}} |<nowiki> </nowiki>(Message added: {{{date}}}) }}</p><!-- --></div><!-- end ambox content --></div><!-- end ambox --></includeonly><noinclude> {{doc}} [[Category:Notice templates]]</noinclude> 8aaad422c212cbd451862c241845af0d62eddbd5 Template:(( 10 28 36 2025-04-09T22:23:01Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{<noinclude>{{documentation}}</noinclude> a506ba66cf7c806baae7faecb221b3a946721f6a Template:Tlx 10 29 37 2025-04-09T22:23:01Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:Tl]] af3906f239c45d791753d3170c656eddd6d1af5f Template:Tl 10 30 38 2025-04-09T22:23:02Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{#invoke:Template link|main|code=on}}</includeonly><noinclude> {{Documentation}} </noinclude> 1c13b1daaf7b7e8ce1e45cc03b4baf31c09bc6cd Template:Tl/doc 10 31 39 2025-04-09T22:23:02Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{From Wikipedia|Module:Template link general,Template:Tlx}} {{Uses Lua|Template link}} This template returns an exemplaric use of a template while linking to the template description page, if the template exists. == Usage == <pre> {{tl|<Template name>}} {{tl|<Template name>|<Template parameters>}} </pre> ; ''unnamed parameter'' 1 : Template name (without <code>Template:</code> prefix) ; ''unnamed parameter'' 2 - 9 : Optional. Template parameters ; nl : Optional flag to display an un-linked template usage. == Examples == : <code><nowiki>{{tl|stub}}</nowiki></code> returns {{tl|stub}} : <code><nowiki>{{tl|stub|1}}</nowiki></code> returns {{tl|stub|1}} : <code><nowiki>{{tl|stub|1|2|nl{{=}}y}}</nowiki></code> returns {{tl|stub|1|2|nl{{=}}y}} : <code><nowiki>{{tl|for|page|t1{{=}}alt text}}</nowiki></code> returns {{tl|for|page|t1{{=}}alt text}} == See also == <includeonly> [[Category:Formatting templates]] </includeonly><noinclude>[[Category:Template documentation]]</noinclude> 7cb4f0fa749ef8a18a48c4b5816357a225f4acee Template:Nowrap 10 32 40 2025-04-09T22:23:03Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <span class="nowrap">{{{1}}}</span><noinclude> {{documentation}} </noinclude> 8817bafce418a08a72f3425283fc03d04a2d8d44 Template:)) 10 33 41 2025-04-09T22:23:03Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki }}<noinclude> {{documentation}} </noinclude> 85ca77d4d6ff71d8e6396ebd798f87fa7f45dc02 Template:))/doc 10 34 42 2025-04-09T22:23:04Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:No wrap 10 35 43 2025-04-09T22:23:04Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:Nowrap]] 269180d5083536bbbf72d889477805cfde7aac9e Template:Normal 10 36 44 2025-04-09T22:23:05Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <span style{{=}}"font-weight:normal; font-style:normal">{{{1}}}</span><noinclude> {{documentation}} </noinclude> f1d74e033cde1ce3b2efdc98b78fb863b8524fcf Template:((/doc 10 37 45 2025-04-09T22:23:05Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {| class="wikitable" style="text-align:center" |- ! scope="col" style="width:7.0em;" | {{no wrap|Template call}}<br>{{normal|('''m''' for magic word)}} ! scope="col" style="width:5.75em;" | {{no wrap|Output}}&nbsp;{{normal|(delayed interpretation as wikimarkup)}} ! scope="col" style="width:9.0em;" | {{no wrap|HTML alternative}} {{normal|(never interpreted as wikimarkup)}} ! Why you might want to use this |- style="vertical-align:top" | <code><nowiki>{{!}}</nowiki></code> '''(m)''' | <nowiki>|</nowiki> | &amp;#124; or {{tl|pipe}} | Displaying pipe characters inside of a parser function |- style="vertical-align:top" | <code><nowiki>{{=}}</nowiki></code> '''(m)''' | <nowiki>=</nowiki> | &amp;#61; | Displaying equal signs inside of unnamed parameters (e.g. <code><nowiki>{{MyTemplate|1+1=2}}</nowiki></code> will assign <code>2</code> to <code><nowiki>{{{1+1|}}}</nowiki></code>; <code><nowiki>{{MyTemplate|1+1{{=}}2}}</nowiki></code> will do what you want) |- style="vertical-align:top" | {{tlx|!!}} | <nowiki>||</nowiki> | &amp;#124;&amp;#124; | Displaying a break between two table cells inside of a parser function |- style="vertical-align:top" | {{tlx|!(}} | {{!(}} | &amp;#91; | Displaying a bracket inside of an external link |- style="vertical-align:top" | {{tlx|)!}} | {{)!}} | &amp;#93; | Displaying a bracket inside of an external link |- style="vertical-align:top" | {{tlx|!((}} | {{!((}} | &amp;#91;&amp;#91; | Displaying a bracket inside of a link |- style="vertical-align:top" | {{tlx|))!}} | {{))!}} | &amp;#93;&amp;#93; | Displaying a bracket inside of a link |- style="vertical-align:top" | {{tlx|(}} | {{(}} | &amp;#123; | Escaping a single brace immediately next to a template or parser function to avoid turning it into a parameter |- style="vertical-align:top" | {{tlx|)}} | {{)}} | &amp;#125; | Escaping a single brace immediately next to a template or parser function to avoid turning it into a parameter |- style="vertical-align:top" | {{tlx|((}} | {{((}} | &amp;#123;&amp;#123; | Displaying open braces for a template without actually transcluding that template |- style="vertical-align:top" | {{tlx|))}} | {{))}} | &amp;#125;&amp;#125; | Displaying closed braces for a template without actually transcluding that template |- style="vertical-align:top" | {{tlx|(((}} | {{(((}} | &amp;#123;&amp;#123;&amp;#123; | Displaying a template parameter's open curly braces without actually using that variable |- style="vertical-align:top" | {{tlx|)))}} | {{)))}} | &amp;#125;&amp;#125;&amp;#125; | Displaying a template parameter's closed curly braces without actually using that variable |- style="vertical-align:top" | {{tlx|(!}} | <nowiki>{|</nowiki> | &amp;#123;&amp;#124; | Starting a table inside of a parser function |- style="vertical-align:top" | {{tlx|!-}} | <nowiki>|-</nowiki> | &amp;#124;&amp;#45; | Starting a new table row inside of a parser function |- style="vertical-align:top" | {{tlx|!)}} | <nowiki>|}</nowiki> | &amp;#124;&amp;#125; | Closing a table inside of a parser function |}<includeonly> [[Category:Formatting templates]] </includeonly><noinclude>[[Category:Template documentation]]</noinclude> 9e1eb11bc0644d97b4cc9bc4445c3f0bacdd339d Template:!( 10 38 46 2025-04-09T22:23:06Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [<noinclude> {{documentation}}</noinclude> 1b058774deae9a7e511a0486a04647d6a3b9af62 Template:!(/doc 10 39 47 2025-04-09T22:23:07Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:)! 10 40 48 2025-04-09T22:23:07Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki ]<noinclude> {{documentation}}</noinclude> 016897dfd1af3b146bed2b47e7aa58c0bbf6f23d Template:)!/doc 10 41 49 2025-04-09T22:23:07Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:!(( 10 42 50 2025-04-09T22:23:08Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[<noinclude> {{documentation}}</noinclude> a331374acf15177afbb3ffc0ec7bd5ada14c582e Template:!((/doc 10 43 51 2025-04-09T22:23:08Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:))! 10 44 52 2025-04-09T22:23:08Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki ]]<noinclude> {{documentation}}</noinclude> 3d84066ce45d0c1fca0bb04608a4e73c6ea54324 Template:))!/doc 10 45 53 2025-04-09T22:23:09Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:Navbox 10 46 54 2025-04-09T22:23:09Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{#invoke:Navbox|main}}</includeonly><noinclude>[[Category:Navigation templates]] {{documentation}}</noinclude> 11355a4514de8aa6c0ae686240591d267101c58c Template:Navbox/doc 10 47 55 2025-04-09T22:23:10Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{no direct use}} {{UsesLua|Navbox}} This template is designed to set up navigational templates relatively quickly with one or more lists of links. We highly recommend using this template for standardizing navigational templates and ease of use, especially for mobile devices. See [[support:RANGER navboxes|the support wiki]] for more information, including installation steps and further examples. == Basic example == The following example demonstrates the core functionality of this template: the title text, one standard link group, and one link group that contains two sub-groups. The rows are striped for easier readability. {{Navbox | title = Items | striped = even | group1 = Consumables | list1 = * Health Potion * Mana Potion | group2 = Weapons | group2.1 = Swords | list2.1 = * Wooden Sword * Rusted Sword * Steel Sword | group2.2 = Bows | list2.2 = * Shortbow * Crossbow * Longbow }} <syntaxhighlight lang="wikitext" style="overflow: auto;"> {{Navbox | template = <template_title> <!-- Required. e.g. `|template=Items` for template:Items --> | title = Items | striped = even | group1 = Consumables | list1 = * Health Potion * Mana Potion | group2 = Weapons | group2.1 = Swords | list2.1 = * Wooden Sword * Rusted Sword * Steel Sword | group2.2 = Bows | list2.2 = * Shortbow * Crossbow * Longbow }} </syntaxhighlight> == Parameters == === Main === The following parameters modify the navbox as a whole. {| class="wikitable" ! Parameter ! Description |- ! <code>template</code><br><code>name</code> | ('''Required''') Title of the template that the edit icon links to. e.g. <code>Items</code> for template:Items. |- ! <code>title</code> | Text that appears at the top of the navbox. |- ! <code>state</code><br><code>collapsible</code> | Controls if a navbox should be expanded or collapsed when the page loads. This only affects the whole navbox; if [[#Sections|sections]] are used, they are treated differently. * <code>expanded</code> ('''default''') - the navbox will start open and readers can collapse it. * <code>collapsed</code> - the navbox will start closed and readers can expand it. * <code>off</code>, <code>no</code>, or <code>plain</code> - the navbox will start open and cannot be collapsed. Advanced users can modify this on a page-by-page basis; see [[support:RANGER navboxes#Controlling the collapsible|the support wiki]] for more information. |- ! <code>editlinks</code> | Controls if an edit icon should be displayed at the top-left of the navbox, making it easier for users to interact with the template itself. * unset ('''default''') - displays the edit icon * <code>off</code> or <code>no</code> - hides the edit icon |- ! <code>above</code> | Text that appears above all list groups, directly below the title. |- ! <code>below</code> | Text that appears below all list groups, at the bottom of the navbox. |- ! <code>striped</code><br><code>evenodd</code> | Controls if the navbox rows should have zebra striping on even or odd rows, making it easier for users to distinguish two rows apart from each other. If [[#Sections|sections]] are used, each section resets the even/odd counter. *unset ('''default''') - all rows have the same background *<code>y</code>, <code>yes</code>, <code>on</code>, <code>striped</code>, or <code>even</code> - even-numbered rows are highlighted *<code>swap</code> or <code>odd</code> - odd-numbered rows are highlighted |} === Sections === The following parameters define sections within the navbox with their own titles. {| class="wikitable" ! Parameter ! Description |- ! <code>header''n''</code> | Text that appears at the top of the section, where ''n'' is any positive integer. If the value is set to two or more <code>-</code> (e.g. <code>--</code>, <code>-----</code>, etc.) the new section will have no header bar and cannot be collapsed. All groups and lists that are ''n'' or higher will appear in this section unless there is a higher <code>header''n''</code> later in the template. For example, if a navbox defines <code>header1</code> and <code>header4</code>, the first section will include <code>list1</code>, <code>list2</code>, and <code>list3</code> (and any of their sub-lists), while the second section will include all remaining lists starting at <code>list4</code> and their sub-lists. |- ! <code>header_state</code><br><code>state''n''</code> | <code>header_state</code> controls if all sections, by default, should be expanded or collapsed when the page loads. <code>state''n''</code> overrides <code>header_state</code> for the specific section defined by <code>header''n''</code> (where ''n'' is a matching integer). * <code>expanded</code> ('''default''') - the section will start open and readers can collapse it. * <code>collapsed</code> - the section will start closed and readers can expand it. * <code>off</code> or <code>plain</code> - the section will start open and cannot be collapsed. Advanced users can modify these on a page-by-page basis; see [[support:RANGER navboxes#Controlling the collapsible|the support wiki]] for more information. Both parameters have no effect on sections with headers set to two or more <code>-</code>, which are always expanded and cannot be collapsed. |} === List groups === The following parameters define the list groups. {| class="wikitable" ! Parameter ! Description |- ! <code>group''n''</code> | Text label for a list, which appears on the left on desktop or at the top on mobile, where ''n'' is any positive integer. This parameter is optional; if a <code>list''n''</code> does not have a matching <code>group''n''</code>, the list will take the full width on desktop. |- ! <code>list''n''</code> | A wikitext list, where ''n'' is any positive integer. |- ! <code>group''n''.''x''</code><br><code>group''n''.''x''.''y''</code><br>etc. | Text label for sub-lists that appear under <code>group''n''</code>, <code>group''n''.''x''</code>, etc. |- ! <code>list''n''.''x''</code><br><code>list''n''.''x''.''y''</code><br>etc. | Wikitext sub-lists. |} === Styling === The following parameters add inline styling or your custom CSS classes to specific elements of the navbox. To assist with text alignment, three default classes are available: <code>align-left</code>, <code>align-center</code>, and <code>align-right</code>. {| class="wikitable" ! Parameter ! Description |- ! <code>navbox_style</code><br><code>navbox_class</code> | Modifies the parent navbox element; <code>class</code> can be used as a shorthand for <code>navbox_class</code> Two default classes are available: *<code>pill</code> changes the links to pill-styled rather than dot-separated *<code>pill-mobile</code> only changes the links to pill-styled on mobile devices |- ! <code>title_style</code><br><code>title_class</code> | Modifies the title bar |- ! <code>above_style</code><br><code>above_class</code> | Modifies the <code>above</code> text row |- ! <code>below_style</code><br><code>below_class</code> | Modifies the <code>below</code> text row |- ! <code>header_style</code><br><code>header_class</code> | Modifies all section headers (''not'' the title bar) |- ! <code>header''n''_style</code><br><code>header''n''_class</code> | Modifies the specific section header ''n'' |- ! <code>section''n''_style</code><br><code>section''n''_class</code> | Modifies the container holding the section defined by a matching <code>header''n''</code> |- ! <code>group_style</code><br><code>group_class</code> | Modifies all base groups (<code>group''n''</code>), but ''not'' any subgroups (<code>group''n''.''x''</code>, etc.) |- ! <code>subgroup_style</code><br><code>subgroup_class</code> | Modifies all subgroups at all levels (<code>group''n''.''x''</code>, <code>group''n''.''x''.''y''</code>, etc.) |- ! <code>group''A''_style</code><br><code>group''A''_class</code> | Modifies the specific group ''A'', where ''A'' is any ''n'', ''n''.''x'', ''n''.''x''.''y'', etc. |- ! <code>list_style</code><br><code>list_class</code> | Modifies all lists. Note, in this context, "list" refers to the container of a <code>list''n''</code> parameter, not a <code>ul</code> or <code>ol</code> element inside the parameter |- ! <code>list''A''_style</code><br><code>list''A''_class</code> | Modifies the specific list ''A'', where ''A'' is any ''n'', ''n''.''x'', ''n''.''x''.''y'', etc. |} <noinclude>[[Category:Template documentation]]</noinclude> e35c990efd00644e63b9735d72ff65818357a1fb Template:( 10 48 56 2025-04-09T22:23:10Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {<noinclude> {{documentation}}</noinclude> 490a0c9c85eff213addd7272fe40f8627a637c75 Template:(/doc 10 49 57 2025-04-09T22:23:10Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:) 10 50 58 2025-04-09T22:23:11Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki }<noinclude> {{documentation}}</noinclude> 3bf19eb36f7371f1b4b61b8efbba67dfb0e8cfd4 Template:)/doc 10 51 59 2025-04-09T22:23:11Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:((( 10 52 60 2025-04-09T22:23:12Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{{<noinclude> {{documentation}}</noinclude> fa33084b57c1f33c82290de279827b973ab2fba8 Template:(((/doc 10 53 61 2025-04-09T22:23:12Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:))) 10 54 62 2025-04-09T22:23:13Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki }}}<noinclude> {{documentation}}</noinclude> 585d94f6fe636b77087dc0d06bfbe6cb69b29987 Template:)))/doc 10 55 63 2025-04-09T22:23:13Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:Documentation/doc 10 56 64 2025-04-09T22:23:13Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki Use {{tl|documentation}} inside of the <code><nowiki><noinclude></noinclude></nowiki></code> section on your template. Then create your template at the <code>/doc</code> subpage of your template. <noinclude>[[Category:Template documentation]]</noinclude> 055b0481a1967951c59f15a09b92767c90baa8dd Template:License/CC-BY-NC-ND 10 57 65 2025-04-09T22:23:14Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-BY-NC-ND | icon = [[File:CC-BY-NC-ND.svg|x50px|link=https://creativecommons.org/licenses/by-nc-nd/3.0/|CC-BY-NC-ND]] | text = This file is under the [https://creativecommons.org/licenses/by-nc-nd/3.0/ Creative Commons Attribution-NonCommercial-NoDerivs 3.0 License]. }}</includeonly><noinclude> This template currently looks like: {{License/CC-BY-NC-ND}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 4ed8a6372d14a167dd9d26f1ae865b1593b76604 66 65 2025-04-09T22:23:14Z ARTIFICER 564804 Protected "[[Template:License/CC-BY-NC-ND]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-BY-NC-ND | icon = [[File:CC-BY-NC-ND.svg|x50px|link=https://creativecommons.org/licenses/by-nc-nd/3.0/|CC-BY-NC-ND]] | text = This file is under the [https://creativecommons.org/licenses/by-nc-nd/3.0/ Creative Commons Attribution-NonCommercial-NoDerivs 3.0 License]. }}</includeonly><noinclude> This template currently looks like: {{License/CC-BY-NC-ND}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 4ed8a6372d14a167dd9d26f1ae865b1593b76604 Template:License/CC-BY-SA 10 58 67 2025-04-09T22:23:14Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-BY-SA | icon = [[File:CC-BY-SA.svg|x50px|link=https://creativecommons.org/licenses/by-sa/3.0/|CC-BY-SA]] | text = This file is under the [https://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 License]. }}</includeonly><noinclude> This template currently looks like: {{License/CC-BY-SA}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 1e471ba76ef084e99bff87e9356d439d400f73de 68 67 2025-04-09T22:23:14Z ARTIFICER 564804 Protected "[[Template:License/CC-BY-SA]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-BY-SA | icon = [[File:CC-BY-SA.svg|x50px|link=https://creativecommons.org/licenses/by-sa/3.0/|CC-BY-SA]] | text = This file is under the [https://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 License]. }}</includeonly><noinclude> This template currently looks like: {{License/CC-BY-SA}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 1e471ba76ef084e99bff87e9356d439d400f73de Template:License/fairuse 10 59 69 2025-04-09T22:23:15Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = fairuse | darkIcon = yes | icon = [[File:IN COPYRIGHT.svg|50px|link=https://rightsstatements.org/page/InC/1.0/?language=en|IN COPYRIGHT]] | text = This file is copyrighted. It will be used in a way that qualifies as fair use under [https://en.wikipedia.org/wiki/Fair_use#Fair_use_under_United_States_law US copyright law]. }}</includeonly><noinclude> This template currently looks like: {{License/fairuse}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 3662b685c4d9fa43d4f9342fae34b2f43ba925ef 70 69 2025-04-09T22:23:15Z ARTIFICER 564804 Protected "[[Template:License/fairuse]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = fairuse | darkIcon = yes | icon = [[File:IN COPYRIGHT.svg|50px|link=https://rightsstatements.org/page/InC/1.0/?language=en|IN COPYRIGHT]] | text = This file is copyrighted. It will be used in a way that qualifies as fair use under [https://en.wikipedia.org/wiki/Fair_use#Fair_use_under_United_States_law US copyright law]. }}</includeonly><noinclude> This template currently looks like: {{License/fairuse}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 3662b685c4d9fa43d4f9342fae34b2f43ba925ef Template:License 10 60 71 2025-04-09T22:23:16Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{License/{{{1|nolicense}}}|source={{{source|}}}}}</includeonly><noinclude>{{documentation}}</noinclude> 4b84fc940507f8fccb9c60b7f70b5a800a62fe59 72 71 2025-04-09T22:23:16Z ARTIFICER 564804 Protected "[[Template:License]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly>{{License/{{{1|nolicense}}}|source={{{source|}}}}}</includeonly><noinclude>{{documentation}}</noinclude> 4b84fc940507f8fccb9c60b7f70b5a800a62fe59 Template:License/CC-PD 10 61 73 2025-04-09T22:23:16Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-PD | icon = [[File:CC-PD.svg|x50px|link=|Public Domain]] | text = This file has been released into the public domain by the copyright holder, its copyright has expired, or it is ineligible for copyright. This applies worldwide. }}</includeonly><noinclude> This template currently looks like: {{License/CC-PD}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 23b76ae521833f5a34f0bf73426a53aad8fa9923 74 73 2025-04-09T22:23:17Z ARTIFICER 564804 Protected "[[Template:License/CC-PD]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-PD | icon = [[File:CC-PD.svg|x50px|link=|Public Domain]] | text = This file has been released into the public domain by the copyright holder, its copyright has expired, or it is ineligible for copyright. This applies worldwide. }}</includeonly><noinclude> This template currently looks like: {{License/CC-PD}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 23b76ae521833f5a34f0bf73426a53aad8fa9923 Template:License/CC-SRR 10 62 75 2025-04-09T22:23:17Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-SRR | icon = [[File:CC-SRR.svg|link=|CC-Some Rights Reserved]] | text = This file is under the Creative Commons Some Rights Reserved License. }}</includeonly><noinclude> This template currently looks like: {{License/CC-SRR}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 1ce36d04e501144e6a089ff194fee2b82732e85a 76 75 2025-04-09T22:23:17Z ARTIFICER 564804 Protected "[[Template:License/CC-SRR]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-SRR | icon = [[File:CC-SRR.svg|link=|CC-Some Rights Reserved]] | text = This file is under the Creative Commons Some Rights Reserved License. }}</includeonly><noinclude> This template currently looks like: {{License/CC-SRR}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 1ce36d04e501144e6a089ff194fee2b82732e85a Template:License/CC-BY 10 63 77 2025-04-09T22:23:18Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-BY | icon = [[File:CC-BY.svg|x50px|link=https://creativecommons.org/licenses/by/3.0/|CC-BY]] | text = This file is under the [https://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 License]. }}</includeonly><noinclude> This template currently looks like: {{License/CC-BY}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 49f4317b802ef04c92f4edc474581035768c252e 78 77 2025-04-09T22:23:19Z ARTIFICER 564804 Protected "[[Template:License/CC-BY]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-BY | icon = [[File:CC-BY.svg|x50px|link=https://creativecommons.org/licenses/by/3.0/|CC-BY]] | text = This file is under the [https://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 License]. }}</includeonly><noinclude> This template currently looks like: {{License/CC-BY}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 49f4317b802ef04c92f4edc474581035768c252e Template:License/CC-BY-ND 10 64 79 2025-04-09T22:23:19Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-BY-ND | icon = [[File:CC-BY-ND.svg|x50px|link=https://creativecommons.org/licenses/by-nd/3.0/|CC-BY-ND]] | text = This file is under the [https://creativecommons.org/licenses/by-nd/3.0/ Creative Commons Attribution-NoDerivs 3.0 License]. }}</includeonly><noinclude> This template currently looks like: {{License/CC-BY-ND}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> c77af748cb3aab2fce9bfd947149cb3e1ef0a3f0 80 79 2025-04-09T22:23:20Z ARTIFICER 564804 Protected "[[Template:License/CC-BY-ND]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-BY-ND | icon = [[File:CC-BY-ND.svg|x50px|link=https://creativecommons.org/licenses/by-nd/3.0/|CC-BY-ND]] | text = This file is under the [https://creativecommons.org/licenses/by-nd/3.0/ Creative Commons Attribution-NoDerivs 3.0 License]. }}</includeonly><noinclude> This template currently looks like: {{License/CC-BY-ND}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> c77af748cb3aab2fce9bfd947149cb3e1ef0a3f0 Template:License/game 10 65 81 2025-04-09T22:23:20Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- -->{{#vardefine:rightsholder|<!-- *************************************** *************************************** Step 1/2 [required] Enter the name of the rightsholder, optionally with a link. Example without link: indie.io Example with a URL: [https://www.indie.io/ indie.io] Edit on the line below this************--> <!--Edit on the line above this******** *************************************** *************************************** -->}}<!-- continue to step 2 *************************************** *************************************** Step 2/2 [optional] Enter the TOS link. Example link: https://www.indie.io/terms-of-service -->{{#vardefine:tos|<!-- Edit on the line below this************--> <!--Edit on the line above this******** *************************************** *************************************** -->}}<!-- DON'T EDIT ANYTHING BELOW THIS -->{{License/template | source = {{{source|}}} | type = developer | darkIcon = yes | icon = [[File:IN COPYRIGHT.svg|50px|link=https://rightsstatements.org/page/InC/1.0/?language=en|IN COPYRIGHT]] | text = {{#if:{{#var:rightsholder}}| <!-- Specific: -->This file is owned by {{#var:rightsholder}} and/or its licensors{{#if:{{#var:tos}}|, and is licensed under the {{#var:rightsholder}} [{{#var:tos}} Terms of Use]}}.<br/>All trademarks and registered trademarks present in the file are proprietary to {{#var:rightsholder}} and/or its licensors. | <!-- Generic: -->This file is owned by the applicable game studio and/or its licensors. }} }}</includeonly><noinclude> This template currently looks like: {{License/game}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> f1283ce43eda0d523b8e1f249ebc02470d957b34 82 81 2025-04-09T22:23:20Z ARTIFICER 564804 Protected "[[Template:License/game]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly><!-- -->{{#vardefine:rightsholder|<!-- *************************************** *************************************** Step 1/2 [required] Enter the name of the rightsholder, optionally with a link. Example without link: indie.io Example with a URL: [https://www.indie.io/ indie.io] Edit on the line below this************--> <!--Edit on the line above this******** *************************************** *************************************** -->}}<!-- continue to step 2 *************************************** *************************************** Step 2/2 [optional] Enter the TOS link. Example link: https://www.indie.io/terms-of-service -->{{#vardefine:tos|<!-- Edit on the line below this************--> <!--Edit on the line above this******** *************************************** *************************************** -->}}<!-- DON'T EDIT ANYTHING BELOW THIS -->{{License/template | source = {{{source|}}} | type = developer | darkIcon = yes | icon = [[File:IN COPYRIGHT.svg|50px|link=https://rightsstatements.org/page/InC/1.0/?language=en|IN COPYRIGHT]] | text = {{#if:{{#var:rightsholder}}| <!-- Specific: -->This file is owned by {{#var:rightsholder}} and/or its licensors{{#if:{{#var:tos}}|, and is licensed under the {{#var:rightsholder}} [{{#var:tos}} Terms of Use]}}.<br/>All trademarks and registered trademarks present in the file are proprietary to {{#var:rightsholder}} and/or its licensors. | <!-- Generic: -->This file is owned by the applicable game studio and/or its licensors. }} }}</includeonly><noinclude> This template currently looks like: {{License/game}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> f1283ce43eda0d523b8e1f249ebc02470d957b34 Template:License/nolicense 10 66 83 2025-04-09T22:23:21Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = nolicense | icon = [[File:Warning-red.svg|50px|link=|No license has been selected.]] | text = Please select the proper license for this file by adding the proper parameter to <nowiki>{{License}}</nowiki>. See [[Template:License]] for details. }}</includeonly><noinclude> This template currently looks like: {{License/nolicense}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 9ddcfb97af577d7f8454e20f985b9456e7a95c77 84 83 2025-04-09T22:23:21Z ARTIFICER 564804 Protected "[[Template:License/nolicense]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = nolicense | icon = [[File:Warning-red.svg|50px|link=|No license has been selected.]] | text = Please select the proper license for this file by adding the proper parameter to <nowiki>{{License}}</nowiki>. See [[Template:License]] for details. }}</includeonly><noinclude> This template currently looks like: {{License/nolicense}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 9ddcfb97af577d7f8454e20f985b9456e7a95c77 Template:License/CC-BY-NC 10 67 85 2025-04-09T22:23:22Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-BY-NC | icon = [[File:CC-BY-NC.svg|x50px|link=https://creativecommons.org/licenses/by-nc/3.0/|CC-BY-NC]] | text = This file is under the [https://creativecommons.org/licenses/by-nc/3.0/ Creative Commons Attribution-NonCommercial 3.0 License]. }}</includeonly><noinclude> This template currently looks like: {{License/CC-BY-NC}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 535d8d725e53a0e8f94922ed597baed1353cec21 86 85 2025-04-09T22:23:22Z ARTIFICER 564804 Protected "[[Template:License/CC-BY-NC]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-BY-NC | icon = [[File:CC-BY-NC.svg|x50px|link=https://creativecommons.org/licenses/by-nc/3.0/|CC-BY-NC]] | text = This file is under the [https://creativecommons.org/licenses/by-nc/3.0/ Creative Commons Attribution-NonCommercial 3.0 License]. }}</includeonly><noinclude> This template currently looks like: {{License/CC-BY-NC}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 535d8d725e53a0e8f94922ed597baed1353cec21 Template:License/CC-BY-NC-SA 10 68 87 2025-04-09T22:23:22Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-BY-NC-SA | icon = [[File:CC-BY-NC-SA.svg|x50px|link=https://creativecommons.org/licenses/by-nc-sa/3.0/|CC-BY-NC-SA]] | text = This file is under the [https://creativecommons.org/licenses/by-nc-sa/3.0/ Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License]. }}</includeonly><noinclude> This template currently looks like: {{License/CC-BY-NC-SA}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 385fc8e61d98dd5ed6d4fa25b0eacf17cbca1218 88 87 2025-04-09T22:23:23Z ARTIFICER 564804 Protected "[[Template:License/CC-BY-NC-SA]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC-BY-NC-SA | icon = [[File:CC-BY-NC-SA.svg|x50px|link=https://creativecommons.org/licenses/by-nc-sa/3.0/|CC-BY-NC-SA]] | text = This file is under the [https://creativecommons.org/licenses/by-nc-sa/3.0/ Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License]. }}</includeonly><noinclude> This template currently looks like: {{License/CC-BY-NC-SA}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 385fc8e61d98dd5ed6d4fa25b0eacf17cbca1218 Template:License/CC0 10 69 89 2025-04-09T22:23:23Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC0 | icon = [[File:CC-0.svg|x50px|link=https://creativecommons.org/publicdomain/zero/1.0/|CC0]] | text = This file is under the [https://creativecommons.org/publicdomain/zero/1.0/ CC0 1.0 License]. }}</includeonly><noinclude> This template currently looks like: {{License/CC0}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> a6ae218b1382bcbe6f0e6e98ef272e4355dd7205 90 89 2025-04-09T22:23:24Z ARTIFICER 564804 Protected "[[Template:License/CC0]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = CC0 | icon = [[File:CC-0.svg|x50px|link=https://creativecommons.org/publicdomain/zero/1.0/|CC0]] | text = This file is under the [https://creativecommons.org/publicdomain/zero/1.0/ CC0 1.0 License]. }}</includeonly><noinclude> This template currently looks like: {{License/CC0}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> a6ae218b1382bcbe6f0e6e98ef272e4355dd7205 Template:License/doc 10 70 91 2025-04-09T22:23:24Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This template is to be used under a ''Licensing'' heading on file pages to denote the file's license. == Available licenses == === Game === * Usage: <nowiki>{{License|game}}</nowiki> {{License|game}} === Fairuse === * Usage: <nowiki>{{License|fairuse}}</nowiki> {{License|fairuse}} === CC0 === * Usage: <nowiki>{{License|CC0}}</nowiki> {{License|CC0}} === CC-BY-NC-ND === * Usage: <nowiki>{{License|CC-BY-NC-ND}}</nowiki> {{License|CC-BY-NC-ND}} === CC-BY-NC-SA === * Usage: <nowiki>{{License|CC-BY-NC-SA}}</nowiki> {{License|CC-BY-NC-SA}} === CC-BY-NC === * Usage: <nowiki>{{License|CC-BY-NC}}</nowiki> {{License|CC-BY-NC}} === CC-BY-ND === * Usage: <nowiki>{{License|CC-BY-ND}}</nowiki> {{License|CC-BY-ND}} === CC-BY-SA === * Usage: <nowiki>{{License|CC-BY-SA}}</nowiki> {{License|CC-BY-SA}} === CC-BY === * Usage: <nowiki>{{License|CC-BY}}</nowiki> {{License|CC-BY}} === CC-PD === * Usage: <nowiki>{{License|CC-PD}}</nowiki> {{License|CC-PD}} === CC-SRR === * Usage: <nowiki>{{License|CC-SRR}}</nowiki> {{License|CC-SRR}} === Permission === * Usage: <nowiki>{{License|permission}}</nowiki> {{License|permission}} === No license === '''Providing no parameter (or invalid one) defaults to the nolicense notice:''' <nowiki>{{License}}</nowiki>{{License}} == Specifying source == '''Source parameter (optional):''' The source parameter accepts a url to the source where the file came from if necessary for attribution. Example: <nowiki>{{License|game|source=https://indie.io/}}</nowiki> {{License|game|source=https://indie.io/}} <includeonly> [[Category:License templates]] </includeonly> <noinclude>[[Category:Template documentation]]</noinclude> 5b334ee591fa6a0867f5d8e685e580b5b6c21334 Template:License/Fairuse 10 71 92 2025-04-09T22:23:25Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:License/fairuse]] ecb7db41961bb5256d571593ca3f90ae1e199a3e Template:Clear 10 72 93 2025-04-09T22:23:25Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <div style="clear:{{{1|both}}};" class={{{class|}}}></div><noinclude> {{documentation}} </noinclude> 5b24b9fd5cc166a8c486e2422d5df465206ed39c Template:Ml 10 73 94 2025-04-09T22:23:26Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <code>{{[[Module:{{{1}}}|{{{1}}}]]}}<sup>m</sup>{{#if:{{{2|}}}|.{{{2}}}()}}</code><noinclude> * <code><nowiki>{{Ml|Infobox}}</nowiki></code> generates {{Ml|Infobox}}. * <code><nowiki>{{Ml|ArgsUtil|merge}}</nowiki></code> generates {{Ml|ArgsUtil|merge}}. [[Category:Formatting templates]] </noinclude> 0c69bf8d7c3319f1cf2aa68f4b80261257291560 Template:(! 10 74 95 2025-04-09T22:23:26Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {|<noinclude>{{documentation}}</noinclude> 86e51fe1f06ae532410029eb39fa936d68880bc8 Template:!- 10 75 96 2025-04-09T22:23:27Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki |-<noinclude>{{documentation}}</noinclude> 636f9e440c24f4a3fe28b49cebd1808c3de8a814 Template:!) 10 76 97 2025-04-09T22:23:27Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki |}<noinclude>{{documentation}}</noinclude> b2debea163716e114d1ea46e65a63d7a1ae84bc0 Template:(!/doc 10 77 98 2025-04-09T22:23:28Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:!-/doc 10 78 99 2025-04-09T22:23:28Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:!)/doc 10 79 100 2025-04-09T22:23:29Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:Pipe 10 80 101 2025-04-09T22:23:29Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki &#124;<noinclude>{{documentation}}</noinclude> 9d1875aa686e4e25a0994448a39d057e91541788 Template:Pipe/doc 10 81 102 2025-04-09T22:23:29Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:!! 10 82 103 2025-04-09T22:23:30Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki ||<noinclude>{{documentation}}</noinclude> 02fb31115eef5c15d6612ac334bf5a5d83155c0a Template:!!/doc 10 83 104 2025-04-09T22:23:30Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:License/template 10 84 105 2025-04-09T22:23:30Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- --><div class="license {{{type|}}}" style="border: 1px solid var(--wiki-content-border-color); background: var(--wiki-content-background-color--secondary); align-items: center; padding: 5px; display: flex; gap: 1em;"> <div class="icon {{#if:{{{darkIcon|}}}|invert-on-dark}}">{{{icon|}}}</div> <div class="text">{{{text|}}}{{#if:{{{source|}}}|<br/><span class="source">Source:&nbsp;{{{source|}}}</span>}}{{{text2|}}}</div> </div><!-- --></includeonly><noinclude>{{documentation|Template:License/doc}}</noinclude> 7d0e694e6a42a5368b4b62ce6c01bfa2fb4e67b8 106 105 2025-04-09T22:23:31Z ARTIFICER 564804 Protected "[[Template:License/template]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly><!-- --><div class="license {{{type|}}}" style="border: 1px solid var(--wiki-content-border-color); background: var(--wiki-content-background-color--secondary); align-items: center; padding: 5px; display: flex; gap: 1em;"> <div class="icon {{#if:{{{darkIcon|}}}|invert-on-dark}}">{{{icon|}}}</div> <div class="text">{{{text|}}}{{#if:{{{source|}}}|<br/><span class="source">Source:&nbsp;{{{source|}}}</span>}}{{{text2|}}}</div> </div><!-- --></includeonly><noinclude>{{documentation|Template:License/doc}}</noinclude> 7d0e694e6a42a5368b4b62ce6c01bfa2fb4e67b8 Template:* 10 85 107 2025-04-09T22:23:31Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki &nbsp;&bull;&nbsp;<noinclude> {{doc}} [[Category:Formatting templates]] </noinclude> 81a7f0051da7b8f4a0548d91c5eb429a974fac91 Template:*/doc 10 86 108 2025-04-09T22:23:32Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This is the '''bullet''' template; it looks like this: [&nbsp;&bull;&nbsp;] It works similarly to the HTML markup sequence: [<code>'''&amp;nbsp;&amp;bull;&amp;nbsp;'''</code>], that is, a non-breaking space, a bullet and a non-breaking space. This template is used when you want a larger bullet than a bold middot ['''&middot;'''], but something smaller than an en dash [&ndash;]. <noinclude>[[Category:Template documentation]]</noinclude> ea04fe63a10dc333ed9c48bfc397debb11682f1e Template:Key 10 87 109 2025-04-09T22:23:32Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- -->{{#vardefine:platform | {{#if: {{{2|}}} | {{#switch: {{lc:{{{1|}}}}} <!-- Desktop --> |mouse |keyboard=keyboard <!-- Mobile --> |gesture=gesture <!-- Microsoft --> |xboxseries |xbox=Xbox |xbox one |xbone |xbox1 |xboxone=xboxone |xbox 360 |xb360 |xbox360 |360=360 <!-- Sony --> |ps |ps5 |playstation |ds |dualsense=DualSense |playstation 4 |ps4=PS4 |playstation 3 |ps3=ps3 <!-- Nintendo --> |ns |switch=Switch |wii=wii }} | undefined }} }}<!-- -->{{#vardefine:key | {{#if: {{{2|}}} | {{ucfirst:{{{2}}}}} | {{ucfirst:{{{1}}}}} }} }}<!-- -->{{#vardefine:img | {{#if: {{{2|}}} | [[File:{{#var:platform}} {{#var:key}}.png|x25px|link=]] }} | Undefined }}<!-- --><span class="key">{{#var:img}}</span><!-- --></includeonly><!-- --><noinclude>{{doc}}</noinclude> 45576cb62a8104687b5b7ac26b042283c80ecae6 Template:Key/doc 10 88 110 2025-04-09T22:23:32Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <tabber> |-|Desktop={{:Template:Key/doc/Keyboard}} |-|Mobile={{:Template:Key/doc/Gesture}} |-|Xbox={{:Template:Key/doc/Xbox}} |-|DualSense={{:Template:Key/doc/DualSense}} |-|PlayStation 4={{:Template:Key/doc/PS4}} |-|Nintendo Switch={{:Template:Key/doc/Nintendo Switch}} </tabber> <noinclude>[[Category:Key template documentation]]</noinclude> 19eb9be1ca2c7112f63dd11c58d3888327dcca75 Template:Key/doc/Gesture 10 89 111 2025-04-09T22:23:33Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki Images source: [[dev:Category:Gesture input images]] === Fingers === <code><nowiki>{{key|gesture|Finger Front}}</nowiki></code> {{key|gesture|Finger Front}} <code><nowiki>{{key|gesture|Finger Side}}</nowiki></code> {{key|gesture|Finger Side}} === Tap & hold === <code><nowiki>{{key|gesture|Tap}}</nowiki></code> {{key|gesture|Tap}} <code><nowiki>{{key|gesture|Double Tap}}</nowiki></code> {{key|gesture|Double Tap}} <code><nowiki>{{key|gesture|Hold}}</nowiki></code> {{key|gesture|Hold}} === Swipe motions === <code><nowiki>{{key|gesture|Swipe Bottom Left}}</nowiki></code> {{key|gesture|Swipe Bottom Left}} <code><nowiki>{{key|gesture|Swipe Bottom Right}}</nowiki></code> {{key|gesture|Swipe Bottom Right}} <code><nowiki>{{key|gesture|Swipe Down}}</nowiki></code> {{key|gesture|Swipe Down}} <code><nowiki>{{key|gesture|Swipe Left}}</nowiki></code> {{key|gesture|Swipe Left}} <code><nowiki>{{key|gesture|Swipe Right}}</nowiki></code> {{key|gesture|Swipe Right}} <code><nowiki>{{key|gesture|Swipe Top Left}}</nowiki></code> {{key|gesture|Swipe Top Left}} <code><nowiki>{{key|gesture|Swipe Top Right}}</nowiki></code> {{key|gesture|Swipe Top Right}} <code><nowiki>{{key|gesture|Swipe Up}}</nowiki></code> {{key|gesture|Swipe Up}} === Zoom & scroll === <code><nowiki>{{key|gesture|Zoom In}}</nowiki></code> {{key|gesture|Zoom In}} <code><nowiki>{{key|gesture|Zoom Out}}</nowiki></code> {{key|gesture|Zoom Out}} <code><nowiki>{{key|gesture|Scroll Down}}</nowiki></code> {{key|gesture|Scroll Down}} <code><nowiki>{{key|gesture|Scroll Left}}</nowiki></code> {{key|gesture|Scroll Left}} <code><nowiki>{{key|gesture|Scroll Right}}</nowiki></code> {{key|gesture|Scroll Right}} <code><nowiki>{{key|gesture|Scroll Up}}</nowiki></code> {{key|gesture|Scroll Up}} === Circular motions === <code><nowiki>{{key|gesture|Double Rotate}</nowiki></code> {{key|gesture|Double Rotate}} <code><nowiki>{{key|gesture|Full Circle}}</nowiki></code> {{key|gesture|Full Circle}} <code><nowiki>{{key|gesture|Half Circle}}</nowiki></code> {{key|gesture|Half Circle}} <code><nowiki>{{key|gesture|Quarter Circle}}</nowiki></code> {{key|gesture|Quarter Circle}} __NOTOC__ <noinclude>[[Category:Key template documentation]]</noinclude> 0a595b125cc6dbd6ad531c1e989d1929eaf1c6e2 Template:Key/doc/PS4 10 90 112 2025-04-09T22:23:33Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki Images source: [[dev:Category:PS4 input images]] === D-pad & sticks === <code><nowiki>{{key|PS4|Dpad}}</nowiki></code> {{key|PS4|Dpad}} <code><nowiki>{{key|PS4|Left}}</nowiki></code> {{key|PS4|Left}} <code><nowiki>{{key|PS4|Right}}</nowiki></code> {{key|PS4|Right}} <code><nowiki>{{key|PS4|Up}}</nowiki></code> {{key|PS4|Up}} <code><nowiki>{{key|PS4|Down}}</nowiki></code> {{key|PS4|Down}} <code><nowiki>{{key|PS4|Left Stick}}</nowiki></code> {{key|PS4|Left Stick}} <code><nowiki>{{key|PS4|Right Stick}}</nowiki></code> {{key|PS4|Right Stick}} <code><nowiki>{{key|PS4|Touch Pad}}</nowiki></code> {{key|PS4|Touch Pad}} === Front buttons === <code><nowiki>{{key|PS4|Circle}}</nowiki></code> {{key|PS4|Circle}} <code><nowiki>{{key|PS4|Cross}}</nowiki></code> {{key|PS4|Cross}} <code><nowiki>{{key|PS4|Square}}</nowiki></code> {{key|PS4|Square}} <code><nowiki>{{key|PS4|Triangle}}</nowiki></code> {{key|PS4|Triangle}} <code><nowiki>{{key|PS4|Share}}</nowiki></code> {{key|PS4|Share}} <code><nowiki>{{key|PS4|Options}}</nowiki></code> {{key|PS4|Options}} === Rear buttons === <code><nowiki>{{key|PS4|L1}}</nowiki></code> {{key|PS4|L1}} <code><nowiki>{{key|PS4|R1}}</nowiki></code> {{key|PS4|R1}} <code><nowiki>{{key|PS4|L2}}</nowiki></code> {{key|PS4|L2}} <code><nowiki>{{key|PS4|R2}}</nowiki></code> {{key|PS4|R2}} <noinclude>[[Category:Key template documentation]]</noinclude> 1672e7f0dcd4db09545c96936cfbabcab681cfeb Template:Key/doc/Nintendo Switch 10 91 113 2025-04-09T22:23:34Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki Images source: [[dev:Category:Nintendo Switch input images]] === Nintendo Switch === <code><nowiki>{{Key|Switch|a}}</nowiki></code> {{Key|Switch|a}} <code><nowiki>{{Key|Switch|b}}</nowiki></code> {{Key|Switch|b}} <code><nowiki>{{Key|Switch|x}}</nowiki></code> {{Key|Switch|x}} <code><nowiki>{{Key|Switch|y}}</nowiki></code> {{Key|Switch|y}} <code><nowiki>{{Key|Switch|Left Stick}}</nowiki></code> {{Key|Switch|Left Stick}} <code><nowiki>{{Key|Switch|Right Stick}}</nowiki></code> {{Key|Switch|Right Stick}} <code><nowiki>{{Key|Switch|Left Stick Press}}</nowiki></code> {{Key|Switch|Left Stick Press}} <code><nowiki>{{Key|Switch|Right Stick Press}}</nowiki></code> {{Key|Switch|Right Stick Press}} <code><nowiki>{{Key|Switch|-}}</nowiki></code> {{Key|Switch|-}} <code><nowiki>{{Key|Switch|+}}</nowiki></code> {{Key|Switch|+}} <code><nowiki>{{Key|Switch|Capture}}</nowiki></code> {{Key|Switch|Capture}} <code><nowiki>{{Key|Switch|HOME}}</nowiki></code> {{Key|Switch|HOME}} <code><nowiki>{{Key|Switch|L}}</nowiki></code> {{Key|Switch|L}} <code><nowiki>{{Key|Switch|R}}</nowiki></code> {{Key|Switch|R}} <code><nowiki>{{Key|Switch|ZL}}</nowiki></code> {{Key|Switch|ZL}} <code><nowiki>{{Key|Switch|ZR}}</nowiki></code> {{Key|Switch|ZR}} === Pro Controller === <code><nowiki>{{Key|Switch|Pro Control Pad}}</nowiki></code> {{Key|Switch|Pro Control Pad}} <code><nowiki>{{Key|Switch|Pro Control Pad Left}}</nowiki></code> {{Key|Switch|Pro Control Pad Left}} <code><nowiki>{{Key|Switch|Pro Control Pad Right}}</nowiki></code> {{Key|Switch|Pro Control Pad Right}} <code><nowiki>{{Key|Switch|Pro Control Pad Up}}</nowiki></code> {{Key|Switch|Pro Control Pad Up}} <code><nowiki>{{Key|Switch|Pro Control Pad Down}}</nowiki></code> {{Key|Switch|Pro Control Pad Down}} === Joy-Con === <code><nowiki>{{Key|Switch|Directional Left}}</nowiki></code> {{Key|Switch|Directional Left}} <code><nowiki>{{Key|Switch|Directional Right}}</nowiki></code> {{Key|Switch|Directional Right}} <code><nowiki>{{Key|Switch|Directional Up}}</nowiki></code> {{Key|Switch|Directional Up}} <code><nowiki>{{Key|Switch|Directional Down}}</nowiki></code> {{Key|Switch|Directional Down}} ==== Diagrams ==== <code><nowiki>{{Key|Switch|Joy-Con}}</nowiki></code> {{Key|Switch|Joy-Con}} <code><nowiki>{{Key|Switch|Joy-Con Separate}}</nowiki></code> {{Key|Switch|Joy-Con Separate}} <code><nowiki>{{Key|Switch|Joy-Con Left}}</nowiki></code> {{Key|Switch|Joy-Con Left}} <code><nowiki>{{Key|Switch|Joy-Con Right}}</nowiki></code> {{Key|Switch|Joy-Con Right}} __NOTOC__ <noinclude>[[Category:Key template documentation]]</noinclude> 34ef402e3bd539920ee4247d68882ecb53fc6eda Template:Spoiler 10 92 114 2025-04-09T22:23:35Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- Base code written for Terraria Wiki: https://terraria.wiki.gg/wiki/Template:Spoiler NOTE: This template needs a JavaScript function in MediaWiki:Common.js or MediaWiki:Vector.js to work, as well as styling in MediaWiki:Common.css or MediaWiki:Vector.css for the related classes -->{{#vardefine:element|{{#if:{{{block|}}}|div|span}}}}<!-- --><{{#var:element}} class="spoiler-content {{{class|}}}" id="{{{id|}}}" style="{{{css|{{{style|}}}}}}"><{{#var:element}}>{{{1|}}}</{{#var:element}}></{{#var:element}}><!-- -->[[Category:Pages with spoilers]]<!-- --></includeonly><noinclude> {{doc}} [[Category:Formatting templates]] </noinclude> 8eb68f2e678d3b1eac0087662b8d5548dc29da29 Template:Spoiler/doc 10 93 115 2025-04-09T22:23:35Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This template is used to mark text and other elements as spoilers. Users can click or optionally hover to reveal their content. == The hoverShowSpoilers gadget == Users can enable the <code>[[MediaWiki:Gadgets/hoverShowSpoilers|hoverShowSpoilers]]</code> gadget to make spoilers show on hover, not just on click. The code for this gadget can be found at [[MediaWiki:Gadgets/hoverShowSpoilers/main.css]]. == Examples == {| class="wikitable" ! Code !! Result |- | <code><nowiki>{{spoiler|spoiler text}}</nowiki></code> (Click to toggle) || {{spoiler|spoiler text}} |- | <code><nowiki>{{spoiler|spoiler text with a [[Template:Navbox|link]]}}</nowiki></code> (Click to toggle) || {{spoiler|spoiler text with a [[Template:Navbox|link]]}} |- | <pre> {{spoiler|block=y|Really long spoiler that spans multiple lines It even has a bulleted list inside it: * Item a * Item b * [[Special:Random|Item c]] }}</pre> |{{spoiler|block=y|Really long spoiler that spans multiple lines It even has a bulleted list inside it: * Item a * Item b * [[Special:Random|Item c]] }} |} == Dependencies == For this template to work properly, you need the following: * The <code>spoilers</code> gadget with JavaScript code for toggling the <code>.spoiler</code> class on/off on click: ** [[MediaWiki:Gadgets/spoilers]] ** [[MediaWiki:Gadgets/spoilers/main.js]] * The <code>.spoiler-content</code> and any related classes, found in [[MediaWiki:Common.css]]. == Source == Base code adapted from [[wgg:terraria:Template:Spoiler|Template:Spoiler on Terraria Wiki]]. ==TemplateData== <templatedata> { "params": { "1": { "aliases": [ "text" ], "label": "Text", "description": "The text to be shown.", "example": "Character A died during the battle.", "type": "content", "required": true }, "hover": { "label": "Show on Hover?", "description": "Show spoiler text on mouse hover.", "example": "hover=yes", "type": "boolean", "default": "hover=no" }, "block": { "label": "Display as block?", "description": "If given, display the spoiler as a block instead of inline. Useful for long spoilers spanning multiple lines or using block-level elements like lists.", "example": "y", "type": "boolean", "suggested": true }, "class": { "label": "Class", "description": "A class or classes to apply to the spoiler", "type": "string" }, "id": { "label": "ID", "description": "A CSS ID to apply to the spoiler.", "type": "string" }, "style": { "description": "Inline CSS styles to pass in.", "type": "string", "aliases": [ "css" ], "label": "Style" } }, "description": "This template can be used to mark text as a spoiler.", "maps": { "1": {} }, "paramOrder": [ "1", "hover", "block", "class", "id", "style" ], "format": "inline" } </templatedata> <noinclude>[[Category:Template documentation]]</noinclude> bae231a84e57129ec12ba47e554ed42e76c185e0 Template:Link icon 10 94 116 2025-04-09T22:23:36Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{#vardefine:target|{{{1|}}}<!-- end vd -->}}<!-- -->{{#vardefine:display|{{#if:{{{2|}}}|{{{2}}}|{{{1}}}<!-- end if -->}}<!-- end vd -->}}<!-- -->{{#vardefine:iconSize|1.2em}}<!-- -->{{#vardefine:lineHeight|1lh}}<!-- -->{{#vardefine:fileExists|{{filepath:{{#var:target}} ({{{type}}}).png}}}}<!-- -->{{#ifeq: {{{2|}}} | notext <!-- start if notext -->|<span class="link-icon notext" style="--link-icon-size: {{#var:iconSize}}; --link-icon-line-height: {{#var:lineHeight}};"><!-- start notext icon element -->{{#if: {{#var:fileExists}} <!-- start icon if -->| <span class="regular">[[File:{{#var:target}} ({{{type}}}).png|link={{#var:target}}|alt=]]</span><!-- end regular icon -->| <span class="fallback">[[File:{{{1}}} ({{{type}}}).png|?]]</span><!-- end fallback icon (?) -->}}<!-- end icon if --></span><!-- end notext icon -->|<span class="link-icon" style="--link-icon-size: {{#var:iconSize}}; --link-icon-line-height: {{#var:lineHeight}};"><!-- start icon + text element -->{{#if: {{#var:fileExists}} <!-- start icon if -->| <span class="regular">[[File:{{#var:target}} ({{{type}}}).png|link={{#var:target}}|alt=]]</span><!-- end regular icon -->| <span class="fallback">[[File:{{{1}}} ({{{type}}}).png|?]]</span><!-- end fallback icon (?) -->}}&nbsp;<!-- end icon if --><span class="display-text">[[{{#var:target}}|{{#var:display}}]]</span><!-- end display text -->}}<!-- start if notext --></span></includeonly><noinclude>{{Documentation}}[[Category:Formatting templates]]</noinclude> 4e9bb37a48d63bb6b56f32d260dc74f64011e4af Template:Link icon/doc 10 95 117 2025-04-09T22:23:37Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{No direct use}} == List of link icon templates == * {{tl|Character icon}} * {{tl|Item icon}} == Dependencies== For this template to work properly, you need the following: * The <code>.link-icon</code> class and any related classes, found in [[MediaWiki:Common.css]]. <noinclude>[[Category:Template documentation]]</noinclude> 654dfb540ea31a810ef53c3820862942e63b2e8a Template:I 10 96 118 2025-04-09T22:23:37Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #REDIRECT [[Template:Link icon]] 6ebdedb4de95efaa3e6ca27590e79aca674f2364 Template:Quote 10 97 119 2025-04-09T22:23:38Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- --><div class="quote"><!-- start quote wrapper --><div class="marks-wrapper"><!-- start marks wrapper --><div class="block"><!-- start quote block -->{{#if:{{{title|}}}|<div class="title">{{{title}}}</div>|}}<!-- -->{{#if:{{{text|{{{1|}}}}}}|<div class="text">{{{text|{{{1|}}}}}}</div>|}}<!-- --></div><!-- end quote block --></div><!-- end marks wrapper -->{{#if:{{{author|{{{2|}}}}}}|<div class="author">― {{#if:{{{authorpage|}}}| [[{{{authorpage}}}|{{{author|{{{2|}}}}}}]] | {{{author|{{{2|}}}}}} }}</div>|}}<!-- --></div><!-- -->[[Category:Pages with quotes]]</includeonly><noinclude>{{Documentation}}[[Category:Formatting templates]]</noinclude> 095258ceee92819a4e7b83c26fba3761bf9c41a9 Template:Item icon 10 98 120 2025-04-09T22:23:38Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{Link icon|{{{1|}}}|{{{2|}}}|type=Item}}</includeonly><noinclude>{{documentation}}[[Category:Formatting templates]]</noinclude> 6564279e3808e659b8034ad4b96f4f9e9e498b57 Template:Item icon/doc 10 99 121 2025-04-09T22:23:39Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki == Summary == <templatedata> { "params": { "1": { "aliases": [ "page" ], "label": "Page Name", "description": "The name for the target page.", "example": "Page Name", "type": "wiki-page-name", "required": true }, "2": { "aliases": [ "label" ], "label": "Link Label", "description": "The text to the be displayed on the link icon's label.", "example": "Alternative Page Name", "type": "line" } }, "description": "Use this template to display an icon next to a page link.\n\nThis template assumes that each page has an icon uploaded at a specific location, namely \"File:Page Name (Item).png\".", "format": "inline" } </templatedata> == Examples == For the examples below, <code><nowiki>File:Mystic Feather (Item).png</nowiki></code> was used as the icon for a page called <code>Mystic Feather</code>. {| class="wikitable" ! Code !! Result |- | <code><nowiki>{{Item icon|Mystic Feather}}</nowiki></code> || {{Item icon|Mystic Feather}} |- | <code><nowiki>{{Item icon|Mystic Feather|Mystic Feathers}}</nowiki></code> || {{Item icon|Mystic Feather|Mystic Feathers}} |- | <code><nowiki>{{Item icon|Mystic Feather|notext}}</nowiki></code> || {{Item icon|Mystic Feather|notext}} |- | <code><nowiki>{{Item icon|Missing Item}}</nowiki></code> (Missing Page Icon) || {{Item icon|Missing Item}} |} == Dependencies== For this template to work properly, you need the following: * The base {{tl|Link icon}} template. * The <code>.link-icon</code> class and any related classes, found in [[MediaWiki:Common.css]]. 4dfcab6f3d3c88596068607685645f29666f0141 Template:Character icon 10 100 122 2025-04-09T22:23:39Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{Link icon|{{{1|}}}|{{{2|}}}|type=Character}}</includeonly><noinclude>{{documentation}}[[Category:Formatting templates]]</noinclude> 24bad84fd5dea93cab210dfd592fda86af09eb87 Template:Character icon/doc 10 101 123 2025-04-09T22:23:39Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki == Summary == <templatedata> { "params": { "1": { "aliases": [ "page" ], "label": "Page Name", "description": "The name for the target page.", "example": "Page Name", "type": "wiki-page-name", "required": true }, "2": { "aliases": [ "label" ], "label": "Link Label", "description": "The text to the be displayed on the link icon's label.", "example": "Alternative Page Name", "type": "line" } }, "description": "Use this template to display an icon next to a page link.\n\nThis template assumes that each page has an icon uploaded at a specific location, namely \"File:Page Name (Character).png\".", "format": "inline" } </templatedata> == Examples == For the examples below, <code><nowiki>File:Invisible Boy (Character).png</nowiki></code> was used as the icon for a page called <code>Invisible Boy</code>. {| class="wikitable" ! Code !! Result |- | <code><nowiki>{{Character icon|Invisible Boy}}</nowiki></code> || {{Character icon|Invisible Boy}} |- | <code><nowiki>{{Character icon|Invisible Boy|The Invisible Boy}}</nowiki></code> || {{Character icon|Invisible Boy|The Invisible Boy}} |- | <code><nowiki>{{Character icon|Invisible Boy|notext}}</nowiki></code> || {{Character icon|Invisible Boy|notext}} |- | <code><nowiki>{{Character icon|Missing Boy}}</nowiki></code> (Missing Page Icon) || {{Character icon|Missing Boy}} |} == Dependencies== For this template to work properly, you need the following: * The base {{tl|Link icon}} template. * The <code>.link-icon</code> class and any related classes, found in [[MediaWiki:Common.css]]. 0999a706143c16f5ed970816e7825239cfce9547 Template:Quote/doc 10 102 124 2025-04-09T22:23:40Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki == Examples == {| class="wikitable" ! Code !! Result |- | <pre>{{Quote|text=Now is the winter of our discontent made glorious summer by this sun of York}}</pre> | {{Quote|text=Now is the winter of our discontent made glorious summer by this sun of York}} |- | <pre>{{Quote |title=Opening lines of ''Richard III'' |text=Now is the winter of our discontent made glorious summer by this sun of York}}</pre> | {{Quote |title=Opening lines of ''Richard III'' |text=Now is the winter of our discontent made glorious summer by this sun of York}} |- | <pre>{{Quote |title=Opening lines of ''Richard III'' |author=William Shakespeare |text=Now is the winter of our discontent made glorious summer by this sun of York}}</pre> | {{Quote |title=Opening lines of ''Richard III'' |author=William Shakespeare |text=Now is the winter of our discontent made glorious summer by this sun of York}} |- | <pre>{{Quote |title=Opening lines of ''Richard III'' |author=William Shakespeare |authorpage=wikipedia:William Shakespeare |text=Now is the winter of our discontent made glorious summer by this sun of York}}</pre> | {{Quote |title=Opening lines of ''Richard III'' |author=William Shakespeare |authorpage=wikipedia:William Shakespeare |text=Now is the winter of our discontent made glorious summer by this sun of York}} |- | <pre>{{Quote |author=William Shakespeare |authorpage=wikipedia:William Shakespeare |text=Now is the winter of our discontent made glorious summer by this sun of York}}</pre> | {{Quote |author=William Shakespeare |authorpage=wikipedia:William Shakespeare |text=Now is the winter of our discontent made glorious summer by this sun of York}} |} == Dependencies == For this template to work properly, you need the following: * The <code>.quote</code> and any related classes, found in [[MediaWiki:Common.css]]. <noinclude>[[Category:Template documentation]]</noinclude> == Template data (for Visual Editor) == <templatedata> { "params": { "title": { "label": "Title", "description": "If the quote has a title, put it here.", "example": "Richard III's soliloquy", "type": "line" }, "text": { "label": "Quoted Text", "description": "The quoted text to be displayed.", "example": "Now is the winter of our discontent made glorious summer by this sun of York", "type": "string", "required": true }, "author": { "label": "Quote's Author", "description": "The author of the displayed quote.", "example": "William Shakespeare", "type": "line", "suggested": true }, "authorpage": { "label": "Author's Page", "description": "If the quote's author has a page on the Wiki, put the page name here.", "example": "William Shakespeare (playwright)", "type": "wiki-page-name", "suggested": true } }, "description": "This template creates a styled block element for quotes.", "paramOrder": [ "text", "author", "authorpage", "title" ], "format": "block" } </templatedata> 8a10e77de70ff704435282ce0f2ba792a13404a5 Template:Hatnote 10 103 125 2025-04-09T22:23:41Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- -->[[Category:Pages with hatnotes]]<!-- --><div class="hatnote {{#if:{{{icon|}}}|icon}}">{{#if:{{{icon|}}}|[[File:{{{icon}}}|x22px]]<nowiki> </nowiki>}}{{{1|}}}</div><!-- --></includeonly><!-- --><noinclude>{{doc}}[[Category:Hatnote templates| ]]</noinclude> c239246055fdd6c2f4aa85033ba3e93b9baa4733 Template:Hatnote/doc 10 104 126 2025-04-09T22:23:41Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{No direct use}} == List of hatnote templates == * {{tl|Disambiguation}} * {{tl|Distinguish}} * {{tl|For}} * {{tl|Main}} == Dependencies == For this template to work properly, you need the following: * The <code>.hatnote</code> class, found in [[MediaWiki:Common.css]]. * The <code>--wiki-content-border-color--secondary</code> CSS variable, defined in [[MediaWiki:Common.css]]. <noinclude>[[Category:Template documentation]]</noinclude> 464f2f866befaf4cfa47f68ab0ad4f170c13463d Template:Disambiguation/doc 10 105 127 2025-04-09T22:23:42Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <templatedata> { "params": { "1": { "label": "Disambiguation Page", "description": "A custom disambiguation page name.", "example": "Disambiguation Page", "type": "wiki-page-name" }, "2": { "label": "Link Label", "description": "A label for the custom disambiguation page.", "example": "Alternative Page Name", "type": "line" }, "topic": { "label": "Custom Topic", "description": "In case {{PAGENAME}} does not describe the topic, this can be used to display a custom topic", "example": "a custom topic", "default": "{{PAGENAME}}", "type": "line" } }, "description": "This hatnote template is meant to be used at the top of an article to indicate the existence of a disambiguation page.", "paramOrder": [ "1", "2", "topic" ], "format": "inline" } </templatedata> == Examples == {| class="wikitable" ! Code !! Result |- | <code><nowiki>{{Disambiguation}}</nowiki></code> || {{Disambiguation|topic=Example}} |- | <code><nowiki>{{Disambiguation|Special:Random|topic=Example}}</nowiki></code> || {{Disambiguation|Special:Random|topic=Example}} |- | <code><nowiki>{{Disambiguation|Special:Random|Page Label|topic=this particular topic}}</nowiki></code> || {{Disambiguation|Special:Random|Page Label|topic=this particular topic}} |} == Dependencies == For this template to work properly, you need the following: * The {{tl|Hatnote}} base template. * The <code>.hatnote</code> class, found in [[MediaWiki:Common.css]]. == Source == Roughly based on [[wikipedia:Template:About|Wikipedia's About Template]]. <noinclude>[[Category:Template documentation]]</noinclude> 5fce9c689120c57454571ff0e60a2cd447df5713 Template:Disambiguation 10 106 128 2025-04-09T22:23:42Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- -->{{#vardefine:topic|<!-- start vd -->{{#if:{{{topic|}}} | {{{topic}}} | {{PAGENAME}} }}<!-- end if -->}}<!-- end vd -->{{#vardefine:disambig|<!-- start vd -->{{#if:{{{1|}}}<!-- start custom disambig if -->|{{{1}}}<!-- start label if -->{{#if:{{{2|}}} | {{!}}{{{2}}} }}<!-- end label if -->|{{#var:topic}} (disambiguation)<!-- else; use regular disambig -->}}<!-- end custom disambig if -->}}<!-- end vd -->{{Hatnote|<!-- -->This page is about '''{{#var:topic}}'''. For other uses, see [[{{#var:disambig}}]].<!-- -->|icon=Disambig.svg<!-- -->}}<!-- --></includeonly><!-- --><noinclude>{{doc}}[[Category:Hatnote templates]]</noinclude> c4c62e7a1876492eb970ea182cf4ac0bcad97913 Template:Distinguish 10 107 129 2025-04-09T22:23:43Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- -->{{#vardefine:text|<!-- start vd -->{{#if:{{{text|}}} | {{{text}}} |<!-- start top if -->{{#if:{{{2|}}}<!-- if more than one page -->|[[{{{1}}}]]{{#if:{{{3|}}}<!-- start concat if -->|, [[{{{2}}}]] or [[{{{3}}}]]<!-- concat two -->|<nowiki> </nowiki>or [[{{{2}}}]]<!-- else; concat one -->}}<!-- end concat if -->|[[{{{1}}}]]<!-- else; one page only -->}}<!-- end custom disambig if -->}}<!-- end if -->}}<!-- end vd -->{{Hatnote|<!-- -->Not to be confused with {{#var:text}}.<!-- -->}}<!-- --></includeonly><!-- --><noinclude>{{doc}}[[Category:Hatnote templates]]</noinclude> 67ae5406ffd29bec56cfe7ad6527bb09a9733496 Template:Distinguish/doc 10 108 130 2025-04-09T22:23:43Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <templatedata> { "params": { "1": { "label": "Alternative", "description": "The alternative page.", "example": "Alternative Page", "type": "wiki-page-name", "suggested": true }, "2": { "label": "Second Alternative", "description": "A second alternative page.", "example": "Second Alternative Page", "type": "wiki-page-name" }, "3": { "label": "Third Alternative", "description": "A third alternative page.", "example": "Third Alternative Page", "type": "wiki-page-name" }, "text": { "label": "Alternative Text", "description": "Instead of using pages, you can provide a full alternative text. This parameter overrides other provided parameters.", "example": "the alternative page, [[Alternative Page]]", "type": "line" } }, "description": "This hatnote template is meant to be used to indicate possible alternatives to what the reader wants to find.", "paramOrder": [ "1", "2", "3", "text" ], "format": "inline" } </templatedata> == Examples == {| class="wikitable" ! Code !! Result |- | <code><nowiki>{{Distinguish|Special:Uncategorizedpages}}</nowiki></code> || {{Distinguish|Special:Uncategorizedpages}} |- | <code><nowiki>{{Distinguish|Special:Uncategorizedpages|Special:Uncategorizedfiles}}</nowiki></code> || {{Distinguish|Special:Uncategorizedpages|Special:Uncategorizedfiles}} |- | <code><nowiki>{{Distinguish|Special:Uncategorizedpages|Special:Uncategorizedfiles|Special:Uncategorizedcategories}}</nowiki></code> || {{Distinguish|Special:Uncategorizedpages|Special:Uncategorizedfiles|Special:Uncategorizedcategories}} |- | <code><nowiki>{{Distinguish|Special:Uncategorizedpages{{!}}Page 1}}</nowiki></code> (Custom link label) || {{Distinguish|Special:Uncategorizedpages{{!}}Page 1}} |- | <code><nowiki>{{Distinguish|text = Page 1, another name for [[Special:Uncategorizedpages]]}}</nowiki></code> || {{Distinguish|text = Page 1, another name for [[Special:Uncategorizedpages]]}} |} == Dependencies == For this template to work properly, you need the following: * The {{tl|Hatnote}} base template. * The <code>.hatnote</code> class, found in [[MediaWiki:Common.css]]. == Source == Roughly based on [[wikipedia:Template:Distinguish|Wikipedia's Distinguish Template]]. <noinclude>[[Category:Template documentation]]</noinclude> 2a06ed576ae6479add20834628f9378c657cb4fb Template:For 10 109 131 2025-04-09T22:23:44Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- -->{{#vardefine:text|<!-- start vd -->{{#if:{{{3|}}}<!-- if more than one page -->|[[{{{2}}}]]{{#if:{{{4|}}}<!-- start concat if -->|, [[{{{3}}}]] and [[{{{4}}}]]<!-- concat two -->|<nowiki> </nowiki>and [[{{{3}}}]]<!-- else; concat one -->}}<!-- end concat if -->|[[{{{2}}}]]<!-- else; one page only -->}}<!-- end if -->}}<!-- end vd -->{{Hatnote|<!-- -->For {{{1}}}, see {{#var:text}}.<!-- -->}}<!-- --></includeonly><!-- --><noinclude>{{doc}}[[Category:Hatnote templates]]</noinclude> 1899e48855153617f7c0bf3087b781bc80f0395c Template:For/doc 10 110 132 2025-04-09T22:23:44Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <templatedata> { "params": { "1": { "label": "Topic", "description": "The topic the following pages are about.", "example": "more information", "type": "line", "required": true }, "2": { "label": "Related Page", "description": "A related page.", "example": "Related Page", "type": "wiki-page-name", "required": true }, "3": { "label": "Second Page", "description": "A second related page.", "example": "Second Related Page", "type": "wiki-page-name" }, "4": { "label": "Third Page", "description": "A third related page.", "example": "Third Related Page", "type": "wiki-page-name" } }, "description": "This hatnote template is meant to be used to show pages related to a topic the reader might want to visit.", "paramOrder": [ "1", "2", "3", "4" ], "format": "inline" } </templatedata> == Examples == {| class="wikitable" ! Code !! Result |- | <code><nowiki>{{For|more information|Special:WantedPages}}</nowiki></code> || {{For|more information|Special:WantedPages}} |- | <code><nowiki>{{For|more information|Special:WantedPages|Special:UncategorizedPages}}</nowiki></code> || {{For|more information|Special:WantedPages|Special:UncategorizedPages}} |- | <code><nowiki>{{For|more information|Special:WantedPages|Special:UncategorizedPages|Special:UncategorizedCategories}}</nowiki></code> || {{For|more information|Special:WantedPages|Special:UncategorizedPages|Special:UncategorizedCategories}} |- | <code><nowiki>{{For|more information|Special:WantedPages{{!}}Page 1}}</nowiki></code> (Custom link label) || {{For|more information|Special:WantedPages{{!}}Page 1}} |} == Dependencies == For this template to work properly, you need the following: * The {{tl|Hatnote}} base template. * The <code>.hatnote</code> class, found in [[MediaWiki:Common.css]]. == Source == Roughly based on [[wikipedia:Template:For|Wikipedia's For Template]]. <noinclude>[[Category:Template documentation]]</noinclude> b2a30a9bf8acff259d5e86654a2de69c2d5e4fff Template:Main 10 111 133 2025-04-09T22:23:45Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- -->{{#vardefine:text|<!-- start vd -->{{#if:{{{2|}}}<!-- if more than one page -->|[[{{{1}}}]]{{#if:{{{3|}}}<!-- start concat if -->|, [[{{{2}}}]] and [[{{{3}}}]]<!-- concat two -->|<nowiki> </nowiki>and [[{{{2}}}]]<!-- else; concat one -->}}<!-- end concat if -->|[[{{{1}}}]]<!-- else; one page only -->}}<!-- end if -->}}<!-- end vd -->{{Hatnote|<!-- -->{{#if:{{{2|}}}|Main articles|Main article}}: {{#var:text}}<!-- -->}}<!-- --></includeonly><!-- --><noinclude>{{doc}}[[Category:Hatnote templates]]</noinclude> e02ac04db1bbce6b71a9aa8a5064182f662d8470 Template:Main/doc 10 112 134 2025-04-09T22:23:45Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <templatedata> { "params": { "1": { "label": "Article", "description": "A main article.", "example": "Article", "type": "wiki-page-name", "required": true }, "2": { "label": "Second Article", "description": "A second main article.", "example": "Second Article", "type": "wiki-page-name" }, "3": { "label": "Third Article", "description": "A third main article.", "example": "Third Article", "type": "wiki-page-name" } }, "description": "This hatnote template is meant to be in sections of an article mentioning information about another existing main article.", "paramOrder": [ "1", "2", "3" ], "format": "inline" } </templatedata> == Examples == {| class="wikitable" ! Code !! Result |- | <code><nowiki>{{Main|Special:WantedPages}}</nowiki></code> || {{Main|Special:WantedPages}} |- | <code><nowiki>{{Main|Special:WantedPages#Section Title}}</nowiki></code> || {{Main|Special:WantedPages#Section Title}} |- | <code><nowiki>{{Main|Special:WantedPages|Special:UncategorizedPages}}</nowiki></code> || {{Main|Special:WantedPages|Special:UncategorizedPages}} |- | <code><nowiki>{{Main|Special:WantedPages|Special:UncategorizedPages|Special:UncategorizedCategories}}</nowiki></code> || {{Main|Special:WantedPages|Special:UncategorizedPages|Special:UncategorizedCategories}} |- | <code><nowiki>{{Main|Special:WantedPages{{!}}Page 1}}</nowiki></code> (Custom link label) || {{Main|Special:WantedPages{{!}}Page 1}} |} == Dependencies == This template requires the {{tl|Hatnote}} metatemplate. == Source == Roughly based on [[wikipedia:Template:For|Wikipedia's For Template]]. <noinclude>[[Category:Template documentation]]</noinclude> dd762adeece0f944821cb81ee14a8bd9cb539b22 Template:Ambox/doc 10 113 135 2025-04-09T22:23:46Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{#ifeq:{{ROOTPAGENAME}}|Ambox|"Ambox" is an abbreviation for '''A'''rticle '''m'''essage '''box'''. You can use amboxes in articles to indicate something important about the current page, often in the header.| This '''message template''' is an [[Template:Ambox|article message box]], or '''ambox'''. The documentation below discusses how to use each ambox provided by the wiki. }} == Premade amboxes == === Problem notice amboxes === These amboxes are used temporarily to notify other editors and visitors about a problem with an article. These amboxes support the following parameters: * <code>|tiny=</code>: If set to <code>yes</code>, the box will have less padding and the icon will be much smaller than default. * <code>|class=</code>: Any additional CSS classes to add to the ambox container element. * <code>|date=</code>: The date the ambox was added to the page. * <code>|nocat=</code>: If set to <code>yes</code>, no category will be added to the page. Use this only when creating documentation. '''Note:''' Premade amboxes need the base {{tl|Ambox}} template to work. {| class="wikitable" ! Code !! Result |- | {{tl|Cleanup}} || {{Cleanup|nocat=yes}} |- | {{tl|Delete}} || {{Delete|nocat=yes}} |- | {{tl|Merge|Example}} || {{Merge|Template:Ambox{{!}}Example|nocat=yes}} |- | {{tl|Move|Example}} || {{Move|Template:Ambox{{!}}Example|nocat=yes}} |- | {{tl|Split|Example}}<br/>{{tl|Split|Example 1|Example 2|Example 3}} || {{Split|Template:Ambox{{!}}Example|nocat=yes}} {{Split|Template:Ambox{{!}}Example 1|Template:Ambox{{!}}Example 2|Template:Ambox{{!}}Example 3|nocat=yes}} |- | {{tl|Stub}} || {{Stub|nocat=yes}} |- |} === Informational amboxes === These amboxes are intended as permanent fixtures to a page, to notify visitors about some piece of information relevant to the page. These amboxes support the following parameters in addition to any listed: * <code>|tiny=</code>: If set to <code>yes</code>, the box will have less padding and the icon will be much smaller than default. * <code>|class=</code>: Any additional CSS classes to add to the ambox container element. {| class="wikitable" ! Code !! Additional parameters !! Result |- | {{tl|Spoiler warning}} || || {{Spoiler warning|nocat=yes}} |- | {{tl|No direct use}} || || {{No direct use|nocat=yes}} |- | {{tl|Uses Lua}} || <code><nowiki>|1=</nowiki></code>, a comma-separated list of modules used || {{Uses Lua|nocat=yes}} |} === Optional parameters === You can use optional parameters to further customize a premade ambox. The example below is using <code>tiny=yes</code> and <code>date=01/01/2021</code>. {{Cleanup|tiny=yes|date=01/01/2021|nocat=yes}} == Creating a custom ambox == You can create additional ambox templates as needed using the following parameters: <pre> {{Ambox | color = The left border color. | icon = The icon image to be displayed. | title = The optional title. | message = The explanation text displayed. | tiny = If you want the tiny version of the ambox, fill the parameter with "yes". | date = An optional date of creation for the message. | class = An optional CSS class for the ambox. }} </pre> == Dependencies == For this template to work properly, you need the following: * <code>.ambox</code> and any related classes, found in [[MediaWiki:Common.css]]. <includeonly>[[Category:Notice templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude> d4fda481c06177d59ff39364bf17e15d7f1adfbc Template:Cleanup 10 114 136 2025-04-09T22:23:46Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{Ambox | color = gold | icon = Cleanup.svg | message = This page does not meet '''{{SITENAME}}'''<nowiki/>'s page quality standards. You can [{{fullurl:{{FULLPAGENAME}}|action=edit}} edit it] to help fix grammar, formatting, or code issues. | tiny = {{{tiny|}}} | class = {{{class|}}} | date = {{{date|}}} }}<!-- -->{{#ifeq: {{lc:{{{nocat|}}}}} | yes ||[[Category:Pages in need of improvement]]}}</includeonly><!-- --><noinclude>{{Cleanup|nocat=yes}} {{doc|Template:Ambox/doc}}</noinclude> 9c9fb940d733227f74a7ce12720d22f569bd4d3e Template:Delete 10 115 137 2025-04-09T22:23:47Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{Ambox | color = grey | icon = Delete.svg | title = Candidate for Deletion | message = This page lacks relevance for '''{{SITENAME}}''' and is a candidate for '''deletion'''. | tiny = {{{tiny|}}} | class = {{{class|}}} | date = {{{date|}}} }}<!-- -->{{#ifeq: {{lc:{{{nocat|}}}}} | yes ||[[Category:Candidates for deletion]]}}</includeonly><!-- --><noinclude>{{Delete|nocat=yes}} {{doc|Template:Ambox/doc}}</noinclude> 6c827de94518d7f5f1635b13425be0d0fb4078da Template:No direct use 10 116 138 2025-04-09T22:23:48Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{ambox|icon=Warning-red.svg|title='''Don't call this template directly from any content page!''' |message=This template is intended to be used inside of another template. Then that template in turn may be used on content pages. |color=red |tiny={{{tiny|}}} |class={{{class|}}} }}</includeonly><noinclude>{{doc|Template:Ambox/doc}} [[Category:Notice templates]]</noinclude> e0c3e967bce625ce28ec15908642c3382335ec1f Template:UsesLua 10 117 139 2025-04-09T22:23:48Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #REDIRECT [[Template:Uses Lua]] 9675a92267565619bc6418ec4e88163985302408 Template:Cleanup/doc 10 118 140 2025-04-09T22:23:49Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #REDIRECT [[Template:Ambox/doc]] 286a3914c1d2770ff27394ac3d3f36a685542cb8 Template:Delete/doc 10 119 141 2025-04-09T22:23:49Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #REDIRECT [[Template:Ambox/doc]] 286a3914c1d2770ff27394ac3d3f36a685542cb8 Template:Spoiler warning 10 120 142 2025-04-09T22:23:50Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{Ambox | color = red | icon = Warning-red.svg | title = Spoiler Warning | message = This page contains '''spoilers'''. View at your own discretion. | tiny = {{{tiny|}}} | class = {{{class|}}} }}<noinclude>{{doc|Template:Ambox/doc}}</noinclude> d46344bae30adce89ead1cf12e8c3ff904e95203 Template:Spoiler warning/doc 10 121 143 2025-04-09T22:23:50Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #REDIRECT [[Template:Ambox/doc]] 286a3914c1d2770ff27394ac3d3f36a685542cb8 Template:Uses Lua/doc 10 122 144 2025-04-09T22:23:50Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #REDIRECT [[Template:Ambox/doc]] 286a3914c1d2770ff27394ac3d3f36a685542cb8 Template:Stub 10 123 145 2025-04-09T22:23:51Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{Ambox | color = gold | icon = Stub.svg | message = This page is a [[support:Stub|stub]]. You can help '''{{SITENAME}}''' by [{{fullurl:{{FULLPAGENAME}}|action=edit}} expanding it]. | tiny = {{{tiny|}}} | class = {{{class|}}} | date = {{{date|}}} }}<!-- -->{{#ifeq: {{lc:{{{nocat|}}}}} | yes ||[[Category:Stubs]]}}</includeonly><!-- --><noinclude>{{Stub|nocat=yes}} {{doc|Template:Ambox/doc}}</noinclude> 1effeb7d6eb04a0b11c76b8bfa871703461c9344 Template:Stub/doc 10 124 146 2025-04-09T22:23:51Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:Ambox/doc]] 68bfb03f8f28c95443c7b1997f252c236bf87256 Template:NoDirectUse 10 125 147 2025-04-09T22:23:51Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #REDIRECT [[Template:No direct use]] 8448af1f61f0d64a84806b006c70670d9296acde Template:No direct use/doc 10 126 148 2025-04-09T22:23:52Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:Ambox/doc]] 68bfb03f8f28c95443c7b1997f252c236bf87256 Template:Merge 10 127 149 2025-04-09T22:23:52Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{Ambox | color = purple | icon = Merge.svg | message = It has been proposed that this page be [[support:Merge|merged]] with [[{{{1}}}]]. | tiny = {{{tiny|}}} | class = {{{class|}}} | date = {{{date|}}} }}<!-- -->{{#ifeq: {{lc:{{{nocat|}}}}} | yes ||[[Category:Candidates for merging]]}}</includeonly><!-- --><noinclude>{{Merge|Template:Merge|nocat=yes}} {{doc|Template:Ambox/doc}}</noinclude> 9975c110e793cc1943eac9ea8e62257d704ab853 Template:Merge/doc 10 128 150 2025-04-09T22:23:53Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #REDIRECT [[Template:Ambox/doc]] 286a3914c1d2770ff27394ac3d3f36a685542cb8 Template:Move 10 129 151 2025-04-09T22:23:53Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{Ambox | color = darkorange | icon = Move.svg | message = It has been proposed that this page be moved to [[{{{1}}}]]. | tiny = {{{tiny|}}} | class = {{{class|}}} | date = {{{date|}}} }}<!-- -->{{#ifeq: {{lc:{{{nocat|}}}}} | yes ||[[Category:Candidates for moving]]}}</includeonly><!-- --><noinclude>{{Move|Template:Ambox{{!}}Example|nocat=yes}} {{doc|Template:Ambox/doc}}</noinclude> dc4fd9090208e453457d6d2df193b9a7ee3b562d Template:Move/doc 10 130 152 2025-04-09T22:23:54Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #REDIRECT [[Template:Ambox/doc]] 286a3914c1d2770ff27394ac3d3f36a685542cb8 Template:Split 10 131 153 2025-04-09T22:23:54Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- -->{{#vardefine:pages|<!-- start vd -->{{#if:{{{2|}}}<!-- if more than one page -->|new pages titled [[{{{1}}}]]{{#if:{{{3|}}}<!-- start concat if -->|, [[{{{2}}}]] and [[{{{3}}}]]<!-- concat two -->|<nowiki> </nowiki>and [[{{{2}}}]]<!-- else; concat one -->}}<!-- end concat if -->|a new page titled [[{{{1}}}]]<!-- else; one page only -->}}<!-- end if -->}}<!-- end vd -->{{Ambox | color = purple | icon = Split.svg | message = It has been proposed that this page be split into {{#var:pages}}. | tiny = {{{tiny|}}} | class = {{{class|}}} | date = {{{date|}}} }}<!-- -->{{#ifeq: {{lc:{{{nocat|}}}}} | yes ||[[Category:Candidates for splitting]]}}</includeonly><!-- --><noinclude>{{Split|Template:Ambox{{!}}Example|nocat=yes}} {{Split|Template:Ambox{{!}}Example 1|Template:Ambox{{!}}Example 2|Template:Ambox{{!}}Example 3|nocat=yes}} {{doc|Template:Ambox/doc}}</noinclude> 73f5044c8b972e18c3b7880f94b0644e4a0e6ac7 Template:Split/doc 10 132 154 2025-04-09T22:23:54Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #REDIRECT [[Template:Ambox/doc]] 286a3914c1d2770ff27394ac3d3f36a685542cb8 Template:Anchor 10 133 155 2025-04-09T22:23:55Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- --><span id="{{{1}}}"></span><!-- --></includeonly><!-- --><noinclude>{{doc}} [[Category:Navigation templates]]</noinclude> 08ccba46722925866447768d344bf540b0b55e79 Template:Anchor/doc 10 134 156 2025-04-09T22:23:55Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki == Summary == This template can be used to insert an invisible anchor (reference points) into a page that can later be used by internal wiki links. == Usage == To create a custom anchor, use <code><nowiki>{{Anchor|Anchor Name}}</nowiki></code> anywhere in the page. For example, if you create the anchor <code><nowiki>{{Anchor|Example Anchor}}</nowiki></code> in the page <code><nowiki>[[Example]]</nowiki></code>, you can access it through the internal link <code><nowiki>[[Example#Example Anchor]]</nowiki></code>. Remember that you can create a [[support:Redirect|redirect]] to this template so that you can call it more easily, such as with <code><nowiki>{{a|Anchor Name}}</nowiki></code>. <noinclude>[[Category:Template documentation]]</noinclude> 4b0ddb50416a354db262e62617d9b45056f4d526 Template:Key/doc/Xbox 10 135 157 2025-04-09T22:23:56Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki Images source: [[dev:Category:Xbox input images]] === Series & One === <code><nowiki>{{Key|Xbox|A}}</nowiki></code> {{Key|Xbox|A}} <code><nowiki>{{Key|Xbox|B}}</nowiki></code> {{Key|Xbox|B}} <code><nowiki>{{Key|Xbox|X}}</nowiki></code> {{Key|Xbox|X}} <code><nowiki>{{Key|Xbox|Y}}</nowiki></code> {{Key|Xbox|y}} <code><nowiki>{{Key|Xbox|Left Thumbstick}}</nowiki></code> {{Key|Xbox|Left Thumbstick}} <code><nowiki>{{Key|Xbox|Right Thumbstick}}</nowiki></code> {{Key|Xbox|Right Thumbstick}} <code><nowiki>{{Key|Xbox|Left Thumbstick Press}}</nowiki></code> {{Key|Xbox|Left Thumbstick Press}} <code><nowiki>{{Key|Xbox|Right Thumbstick Press}}</nowiki></code> {{Key|Xbox|Right Thumbstick Press}} <code><nowiki>{{Key|Xbox|LB}}</nowiki></code> {{Key|Xbox|LB}} <code><nowiki>{{Key|Xbox|RB}}</nowiki></code> {{Key|Xbox|RB}} <code><nowiki>{{Key|Xbox|View}}</nowiki></code> {{Key|Xbox|View}} <code><nowiki>{{Key|Xbox|Menu}}</nowiki></code> {{Key|Xbox|Menu}} <code><nowiki>{{Key|Xbox|Button}}</nowiki></code> {{Key|Xbox|Button}} === Xbox Series === <code><nowiki>{{Key|Xbox|D-pad}}</nowiki></code> {{Key|Xbox|D-pad}} <code><nowiki>{{Key|Xbox|D-pad Left}}</nowiki></code> {{Key|Xbox|D-pad Left}} <code><nowiki>{{Key|Xbox|D-pad Right}}</nowiki></code> {{Key|Xbox|D-pad Right}} <code><nowiki>{{Key|Xbox|D-pad Up}}</nowiki></code> {{Key|Xbox|D-pad Up}} <code><nowiki>{{Key|Xbox|D-pad Down}}</nowiki></code> {{Key|Xbox|D-pad Down}} <code><nowiki>{{Key|Xbox|LT}}</nowiki></code> {{Key|Xbox|LT}} <code><nowiki>{{Key|Xbox|RT}}</nowiki></code> {{Key|Xbox|RT}} <code><nowiki>{{Key|Xbox|Share}}</nowiki></code> {{Key|Xbox|Share}} ==== Diagram ==== <code><nowiki>{{Key|Xbox|Series Controller Diagram}}</nowiki></code> {{Key|Xbox|Series Controller Diagram}} === Xbox One === <code><nowiki>{{Key|Xbox|One D-pad}}</nowiki></code> {{Key|Xbox|D-pad}} <code><nowiki>{{Key|Xbox|One D-pad Left}}</nowiki></code> {{Key|Xbox|D-pad Left}} <code><nowiki>{{Key|Xbox|One D-pad Right}}</nowiki></code> {{Key|Xbox|D-pad Right}} <code><nowiki>{{Key|Xbox|One D-pad Up}}</nowiki></code> {{Key|Xbox|D-pad Up}} <code><nowiki>{{Key|Xbox|One D-pad Down}}</nowiki></code> {{Key|Xbox|D-pad Down}} <code><nowiki>{{Key|Xbox|One Left Trigger}}</nowiki></code> {{Key|Xbox|One Left Trigger}} <code><nowiki>{{Key|Xbox|One Right Trigger}}</nowiki></code> {{Key|Xbox|One Right Trigger}} ==== Diagram ==== <code><nowiki>{{Key|Xbox|One Controller Diagram}}</nowiki></code> {{Key|Xbox|One Controller Diagram}} __NOTOC__ <noinclude>[[Category:Key template documentation]]</noinclude> adce81e2e9eafcf930052a8993d3e5625665202e Template:Key/doc/DualSense 10 136 158 2025-04-09T22:23:57Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki Images source: [[dev:Category:DualSense input images]] === Buttons === <code><nowiki>{{Key|PS|Directional}}</nowiki></code> {{Key|PS|Directional}} <code><nowiki>{{Key|PS|Directional Left}}</nowiki></code> {{Key|PS|Directional Left}} <code><nowiki>{{Key|PS|Directional Right}}</nowiki></code> {{Key|PS|Directional Right}} <code><nowiki>{{Key|PS|Directional Up}}</nowiki></code> {{Key|PS|Directional Up}} <code><nowiki>{{Key|PS|Directional Down}}</nowiki></code> {{Key|PS|Directional Down}} <code><nowiki>{{Key|PS|Left Stick}}</nowiki></code> {{Key|PS|Left Stick}} <code><nowiki>{{Key|PS|Right Stick}}</nowiki></code> {{Key|PS|Right Stick}} <code><nowiki>{{Key|PS|Touch Pad}}</nowiki></code> {{Key|PS|Touch Pad}} <code><nowiki>{{Key|PS|Circle}}</nowiki></code> {{Key|PS|Circle}} <code><nowiki>{{Key|PS|Cross}}</nowiki></code> {{Key|PS|Cross}} <code><nowiki>{{Key|PS|Square}}</nowiki></code> {{Key|PS|Square}} <code><nowiki>{{Key|PS|Triangle}}</nowiki></code> {{Key|PS|Triangle}} <code><nowiki>{{Key|PS|Create}}</nowiki></code> {{Key|PS|Create}} <code><nowiki>{{Key|PS|Options}}</nowiki></code> {{Key|PS|Options}} <code><nowiki>{{Key|PS|L1}}</nowiki></code> {{Key|PS|L1}} <code><nowiki>{{Key|PS|R1}}</nowiki></code> {{Key|PS|R1}} <code><nowiki>{{Key|PS|L2}}</nowiki></code> {{Key|PS|L2}} <code><nowiki>{{Key|PS|R2}}</nowiki></code> {{Key|PS|R2}} <code><nowiki>{{Key|PS|L3}}</nowiki></code> {{Key|PS|L3}} <code><nowiki>{{Key|PS|R3}}</nowiki></code> {{Key|PS|R3}} <code><nowiki>{{Key|PS|Mute}}</nowiki></code> {{Key|PS|Mute}} <code><nowiki>{{Key|PS|PS}}</nowiki></code> {{Key|PS|PS}} === Diagram === <code><nowiki>{{Key|PS|Controller Diagram}}</nowiki></code> {{Key|PS|Controller Diagram}} <noinclude>[[Category:Key template documentation]]</noinclude> 84fa5123f9494d3572fef65e1aa63dd95ef476be Template:Gad 10 137 159 2025-04-09T22:23:57Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <code>Gadget-[[MediaWiki:Gadget-{{{1}}}|{{{1}}}]]</code><noinclude>[[Category:Formatting templates]]</noinclude> dd027468a6022472506b1fc2973d6299ec01e854 Template:From Wikipedia 10 138 160 2025-04-09T22:23:58Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{Ambox | color = darkblue | icon = Wikipedia.svg | title= This code is adapted from [[wikipedia:Main Page|Wikipedia]]. | message = For the original code, see the following pages: {{#arraymap:{{{1|}}}|,|%s|[[wikipedia:%s|%s]]}} | tiny = {{{tiny|}}} | class = {{{class|}}} }}</includeonly><noinclude>{{doc}}</noinclude> 0bb256ef5acc38fb0cfbdacc22e75aab89bd6e2c Template:!-! 10 139 161 2025-04-09T22:23:58Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki |-|<noinclude>{{documentation}}</noinclude> c634369c1e88b95ebe6a6d827cb32dc1e9c61fec Template:!-!/doc 10 140 162 2025-04-09T22:23:58Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:((/doc]] 509bb731d447456a18489848c8a1ce38feddabcc Template:Color 10 141 163 2025-04-09T22:23:59Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><span class="color">{{{1}}}&nbsp;<span class="color__splotch" style="background-color: {{{1}}};" title="{{{1}}}"></span></span>[[Category:Pages with colors]]</includeonly><noinclude> {{doc}} [[Category:Formatting templates]] </noinclude> 8d576236ad82770d3c04720d4ac105edcb835874 Template:Color/doc 10 142 164 2025-04-09T22:23:59Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This template creates a small color splotch with a given background color next to a plaintext color code. This is useful for previewing colors. ==Usage== {{tlx|color|<color>}} Where <code><color></code> is any valid [https://developer.mozilla.org/en-US/docs/Web/CSS/color_value CSS color]. ==Examples== <pre> My favorite color is {{color|darkgreen}} I think the current {{color|#6d8afb}} of links should be changed to a {{color|#6df4fb}} RGB is cool too, you can do {{color|rgb(128,255,128)}}, or even transparency with {{color|rgba(128,255,128,0.5)}}. </pre> Produces: My favorite color is {{color|darkgreen}} I think the current {{color|#6d8afb}} of links should be changed to a {{color|#6df4fb}} RGB is cool too, you can do {{color|rgb(128,255,128)}}, or even transparency with {{color|rgba(128,255,128,0.5)}}. <noinclude>[[Category:Template documentation]]</noinclude> cb66b177cf785e1b3f60e28e36852b253e4b3d82 Template:Example character infobox 10 143 165 2025-04-09T22:24:00Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{#invoke:Infobox|main <!-- See https://support.wiki.gg/wiki/DRUID_infoboxes for extra documentation --> <!-- the "kind" categorizes this type of infobox. For example, you might want to write `Character`, `Level`, or `Item`. --> <!-- This `kind` value should be unique to this template, and no other infobox template should have the same value --> |kind=example-1 <!-- You can almost certainly leave the separator alone, unless one of your *section names* has a comma in it --> |sep=, <!-- feel free to edit the 300px but mostly try to avoid changing this next line unless you are adding tabs --> |image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}} <!-- every infobox needs a |sections= parameter, which lists the groups of sections, in order top to bottom --> |sections=General Info, Stats <!-- for each section, specify the list of fields that you want to show up in that section, top to bottom --> <!-- empty fields (not specified on the content page) will not show up --> |General Info=Region,Element |Stats=Attack, HP, Armor, Attack Speed <!-- this field formats the `Attack Speed` parameter when it's specified by the content page, adding a % sign to the end of it. --> <!-- this is an optional operation to do, only do it if you need to provide some extra formatting --> |Attack Speed={{#if:{{{Attack Speed|}}}|{{{Attack Speed}}}%}} }}<!-- Here is the above code without comments for easier copy-pasting: {{#invoke:Infobox|main |kind=example-1 |sep=, |image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}300px]]}} |sections=General Info, Stats |General Info=Region,Element |Stats=Attack, HP, Armor, Attack Speed |Attack Speed={{#if:{{{Attack Speed|}}}|{{{Attack Speed}}}%}} }} --></includeonly><noinclude> {{documentation}} [[Category:Infobox templates]]</noinclude> f49d0f82d5a212306ff66b8fee112ecf88123576 Template:Example character infobox/doc 10 144 166 2025-04-09T22:24:01Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <noinclude>Are you trying to edit [[Template:Example character infobox]]? If so, you may be in the wrong place - this is the '''documentation page''', not the template itself. To edit the template, please go here: {{fullurl:Template:Example character infobox|action=edit}} </noinclude>This is an example character infobox using the [[support:DRUID infoboxes|DRUID infoboxes]] framework. You can edit it, rename it, or delete it as desired. == Modify this template == To see how DRUID works, please '''edit this page'''! It has several comments explaining the different parts of how to make an infobox. == Copyable code for use on other content pages == If you want to create pages using this infobox, you can use the snippet below. Please understand, this code is for CONTENT PAGES ONLY!! It does not have anything to do with changing what the template supports. <syntaxhighlight lang="wikitext" style="overflow: auto;"> {{Example character infobox |title= |image= |Region= |Element= |Attack= |HP= |Armor= |Attack Speed= }} </syntaxhighlight><noinclude>[[Category:Template documentation]]</noinclude> cc625bd426cde7dbdfa16b8330ff21cd1ef2e942 Template:License/indie.io 10 145 167 2025-04-09T22:24:01Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = developer | darkIcon = yes | icon = [[File:IN COPYRIGHT.svg|50px|link=https://rightsstatements.org/page/InC/1.0/?language=en|IN COPYRIGHT]] | text = This file is owned by [https://indie.io indie.io] and/or its licensors, and is licensed under the [https://indie.io indie.io] [https://www.indie.io/terms-of-service Terms of Use].<br/> All trademarks and registered trademarks present in the file are proprietary to [https://indie.io indie.io] and/or its licensors. }}</includeonly><noinclude> This template currently looks like: {{License/indie.io}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 49823bdf8d378ff755fa7b6493afde40f6a4e19a 168 167 2025-04-09T22:24:02Z ARTIFICER 564804 Protected "[[Template:License/indie.io]]" ([Edit=Allow only wiki.gg staff] (indefinite)) wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = developer | darkIcon = yes | icon = [[File:IN COPYRIGHT.svg|50px|link=https://rightsstatements.org/page/InC/1.0/?language=en|IN COPYRIGHT]] | text = This file is owned by [https://indie.io indie.io] and/or its licensors, and is licensed under the [https://indie.io indie.io] [https://www.indie.io/terms-of-service Terms of Use].<br/> All trademarks and registered trademarks present in the file are proprietary to [https://indie.io indie.io] and/or its licensors. }}</includeonly><noinclude> This template currently looks like: {{License/indie.io}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 49823bdf8d378ff755fa7b6493afde40f6a4e19a Template:- 10 146 169 2025-04-09T22:24:02Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #REDIRECT [[Template:Clear]] 1a2aa4a9ba7478e54a2b21cbce68887ea297ea86 Template:Clear/doc 10 147 170 2025-04-09T22:24:02Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This template allows you to [https://developer.mozilla.org/en-US/docs/Web/CSS/clear clear] the left side, the right side, or both by adding <code>&lt;div style="clear:left/right/both;"&gt;&lt;/div&gt;</code> ==Usage== {{tlx|Clear}}: Makes content wait until existing content is completed in all columns. Often used to stop text from flowing next to unrelated images. An optional <code>class</code> parameter can additionally be given for custom functionality. To clear the left, simply put {{tlx|Clear|left}}. To clear the right, put {{tlx|Clear|right}}. To clear both sides, put {{tlx|Clear}}. This template can also be called with {{tlx|-}} for short. <templatedata> { "params": { "1": { "label": "Direction", "description": "Which direction to clear", "type": "string", "default": "both", "suggestedvalues": [ "left", "right", "both" ] }, "class": { "label": "Class", "description": "A class to give to the clear", "type": "string" } }, "description": "Clears the left, right, or both.", "format": "inline" } </templatedata> <noinclude> [[Category:Template documentation]] </noinclude> 30e700cb1ba6902a86860319bd230680193d3b04 Template:Discord 10 148 171 2025-04-09T22:24:03Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{#if:{{{1|{{{id|}}}}}}|<!-- -->{{#ifeq: {{lc:{{{full|}}}<!-- -->}} | yes<!-- display the full widget: -->|<div class="DiscordIntegrator" style="width: {{#or:{{{width|}}}|100%}}; height: {{#or:{{{height|}}}|300px}}" data-id="{{{1|{{{id}}}}}}" data-logged-in="{{{loggedIn}}}" data-theme="{{{theme|}}}" data-width="100%" data-height="100%"><!-- -->If you see this, your JavaScript might be disabled or DiscordIntegrator plugin isn't working. If the latter, please contact a wiki administrator.</div><!-- display only the small widget: -->|<div id="discord-compact-widget" data-id="{{{1|{{{id}}}}}}"></div><!-- -->}}<!-- case: id is not supplied -->|<strong class="error">DiscordIntegrator error: ID of the server isn't supplied.</strong> For instructions on how to find a Discord server ID, see [https://support.discord.com/hc/articles/206346498 this Discord Help Center article]<!-- -->}}</includeonly><!-- -->[[Category:Pages with Discord embeds]]<noinclude>{{Documentation}} [[Category:Templates]]</noinclude> 7d39c3a9d1b4eb8e95becaf418c16ec30cb9c077 Template:Discord/doc 10 149 172 2025-04-09T22:24:03Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This template allows you to either use [[support:DiscordCompact|DiscordCompact]] or [[support:DiscordWidget|DiscordWidget]] to display information about a certain Discord server. == Usage == In order to be able to show a Discord server widget on your wiki, first go to your Discord server and do the following: * Open the <code>Server Settings</code>, then go to the <code>Widget</code> section. * Enable the Widget. * Copy the <code>Server ID</code>. Then, do the following depending on the type of widget you want to use (compact or full). === Compact Widget (Default) === {{main|support:DiscordCompact{{!}}DiscordCompact}} The compact widget is the default one. To use it, simply add the template with the server ID either as the '''first''' parameter or as the <code>id</code> parameter: * <code><nowiki>{{Discord|serverID}}</nowiki></code> * <code><nowiki>{{Discord|id=serverID}}</nowiki></code> === Full Widget === {{main|support:DiscordWidget{{!}}DiscordWidget}} To use the full version of the Discord widget, you have to specify <code>full=yes</code> as one of the template parameters, with the ID either as the '''first''' parameter or as the <code>id</code> parameter: * <code><nowiki>{{Discord|serverID|full=yes}}</nowiki></code> * <code><nowiki>{{Discord|full=yes|id=serverID}}</nowiki></code> You can further customize the widget with the <code>width</code>, <code>height</code> and other parameters. See the Examples section and the full documentation for DiscordWidget on the [[support:DiscordWidget|Support Wiki]]. == Examples == {| class="wikitable" ! Code !! Result |- | <code><nowiki>{{Discord|951501892553424917}}</nowiki></code><br/><code><nowiki>{{Discord|id=951501892553424917}}</nowiki></code> || {{Discord|951501892553424917}} |- | <code><nowiki>{{Discord|951501892553424917}|full=yes}</nowiki></code> || {{Discord|951501892553424917|full=yes}} |- | <pre><nowiki>{{Discord|full=yes |id = 951501892553424917 |width = 300px |height = 500px }}</nowiki></pre> || {{Discord|full=yes|id=951501892553424917|width=300px|height=500px}} |} == Dependencies == * As stated before, both Compact and Widget require the given Discord server to have Widgets enabled in its Server Settings. * DiscordCompact requires [[support:DiscordCompact#MediaWiki:DiscordCompact.js-0|DiscordCompact.js]] code, present in [[MediaWiki:Common.js]]. * DiscordWidget requires [[dev:DiscordIntegrator.js|DiscordIntegrator.js]] code, present in [[MediaWiki:Common.js]]. == TemplateData == <templatedata> { "params": { "1": { "aliases": [ "id" ], "label": "Server ID", "description": "The Discord server's ID.", "example": "951501892553424917", "type": "line", "required": true }, "full": { "label": "Use Full Widget", "example": "yes", "type": "boolean", "description": "Do you want to use the full widget?" }, "width": { "label": "Width (Full Widget only)", "description": "A custom width for the full widget.", "example": "300px", "type": "line" }, "height": { "label": "Height (Full Widget only)", "description": "A custom height for the full widget.", "example": "500px", "type": "line" } }, "description": "This template allows you to either use DiscordCompact or DiscordWidget extensions to display information about a certain Discord server.", "paramOrder": [ "1", "full", "width", "height" ], "format": "block" } </templatedata> 641236c3823c42440e97734170310cd9877aa84e Template:Main page box/end 10 150 173 2025-04-09T22:24:04Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly></div> </div></includeonly><noinclude> {{doc}} [[Category:Main page templates]] </noinclude> 506617faba565eb65144b21c3ead8fe5c2010b55 Template:Main page box/start 10 151 174 2025-04-09T22:24:04Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><div class="mp-box <!-- These variables are used to determine if certain layouts should hide certain boxes. The variable is created in and passed from [[Module:Main page]], and is formatted as a pseudo bitmask to reduce variable usage An example of this variable would be "1,1,0," which would mean display on desktop and tablet but not on mobile -->{{#ifeq:{{#explode:{{#var:imp-variable-display-box}}|,|0}}|0|mp-hide-on-desktop}} <!-- -->{{#ifeq:{{#explode:{{#var:imp-variable-display-box}}|,|1}}|0|mp-hide-on-tablet}} <!-- -->{{#ifeq:{{#explode:{{#var:imp-variable-display-box}}|,|2}}|0|mp-hide-on-mobile}} <!-- -->{{{class|}}}" style="grid-area:{{#var:imp-variable-id}}; {{{style|}}}" id="mp-box-{{#var:imp-variable-id}}" data-box-id="{{#var:imp-variable-id}}"><!-- -->{{#if:{{{title|{{{1|}}}}}}| <h2> {{{title|{{{1|}}}}}} </h2> }}<div class="mp-body"></includeonly><noinclude> {{doc}} [[Category:Main page templates]] </noinclude> 62eedb503b63a36fc31a301f8ea6b15f6ff9bf60 Template:Main page box/preload 10 152 175 2025-04-09T22:24:04Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{Main page box/start | title = $1 }} Content goes here, between the start and end templates. Feel free to use wikitext, tables, templates, new lines, whatever. {{Main page box/end}}<includeonly><no<noinclude></noinclude>include>[[Category:Main page boxes]]</no<noinclude></noinclude>include></includeonly><!-- don't edit this line --><noinclude> [[Category:Main page templates]] </noinclude> 9b16288e15e3c8c9ede76b4dc76e538d2253cf23 Template:Main page 10 153 176 2025-04-09T22:24:05Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{#invoke:Main page|main}} __NOTOC__ __NOEDITSECTION__ [[Category:{{SITENAME}}| ]]</includeonly><noinclude> {{doc}} [[Category:Main page templates]] </noinclude> 64a0dbb502a75c44e4b3f474772d8502bdf44e40 Template:Main page box/create 10 154 177 2025-04-09T22:24:05Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{#tag: inputbox | type = create width = 40 default = {{{1|}}} buttonlabel = Create this box prefix = {{#or:{{{rootpage|}}}|{{MediaWiki:Mainpage}}}}/ placeholder = box name (no spaces) preload = Template:Main page box/preload summary = Created using preload preloadparams[] = {{ucfirst:{{{1|Example}}}}} }}<noinclude>[[Category:Main page templates]]</noinclude> da58eca98a44a09e476c5b4a5cafde116b6cdac9 Template:Main page box 10 155 178 2025-04-09T22:24:06Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><code>Template:Main page box</code> is not intended to be used directly, please use [[Template:Main page box/start]] and [[Template:Main page box/end]].</includeonly><noinclude> This template is used to create the boxes of the IMProved Main Page (IMP) framework. '''It should not be called directly''', instead using {{tl|Main page box/start}} and {{tl|Main page box/end}}. <div style="text-align:center;"> Use the box below to create a page with the required templates already in place, ready for you to add your content. {{/create}} The box name can not contain spaces or start with a number. Those are probably the only restrictions you'll run into, but for a full list see [https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident <custom-ident> on MDN web docs]. </div> ==Parameters== These are the parameters used by {{tl|Main page box/start}}. All parameters are optional. {| class="wikitable" ! Name !! Data type !! Description |- | title || Wikitext || The title of the box. This can be empty, in which case the box will contain only the content. |- | class || CSS classes || A list of classes to be passed to the box, separated by spaces and without quotes. Standard options are <code>centered-content</code> to vertically center contents, and <code>has-floating-image</code> in case floating images are needed in the box (normally the flex layout disallows this). |- | style || CSS declarations || Inline CSS to be applied directly to the box, without quotes. A common usage is <code>text-align:center;</code> for cases where it's desired for individual boxes to have centered text. |} [[Category:Main page templates]] [[Category:Template documentation]] </noinclude> cbbd25d1eb0105a8be55d0cc174f385fc467ffad Template:Main page box/start/doc 10 156 179 2025-04-09T22:24:06Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki See [[Template:Main page box]] for information on how to use this. ==TemplateData== <templatedata> { "params": { "class": { "label": "Class", "description": "Additional classes to give to the box wrapping this box.", "example": "centered-content", "suggestedvalues": [ "centered-content", "has-floating-image" ] }, "style": { "label": "Style", "description": "Inline CSS to add to the box wrapping this box", "example": "text-align:center;", "type": "string" }, "title": { "aliases": [ "1" ], "label": "Title", "description": "The title of this box.", "example": "Welcome to the wiki!", "type": "content", "suggested": true } }, "description": "Creates a box for use on the main page.", "paramOrder": [ "title", "class", "style" ], "format": "block" } </templatedata> <noinclude>[[Category:Template documentation]]</noinclude> 860e1be8fbf205ab2b3214cb91860a77fd3ef52b Template:Main page box/end/doc 10 157 180 2025-04-09T22:24:06Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki See [[Template:Main page box]] for information on how to use this. <noinclude>[[Category:Template documentation]]</noinclude> e73182bed655118b10da971b634dc9c3bf3e3d39 Template:Main page/doc 10 158 181 2025-04-09T22:24:07Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This template is used to create an IMP Main Page. It uses [[Module:Main page]] to arrange a series of [[Template:Main page box]]es in a [https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout CSS grid]. ==Simple explanation== The layout is made using keywords arranged in a grid. This grid has 3 columns on desktop-width screens, 2 columns on tablet, and 1 on mobile. Each can have as many rows as you want. Each keyword represents the same section and can span multiple rows and/or columns, but ''must'' form a contiguous rectangle of any dimension (1x1, 1x2, 2x2, 2x3, etc.). For example, the following input to desktop: <pre style="display:table;"> welcome welcome welcome about links links about contribute contribute </pre> would produce a grid resembling the following: {| class="wikitable" | style="background-color:rgba(0,255,0,0.15)" | welcome | style="background-color:rgba(0,255,0,0.15)" | welcome | style="background-color:rgba(0,255,0,0.15)" | welcome |- | style="background-color:rgba(255,0,255, 0.15)" | about | style="background-color:rgba(0,0,255, 0.15)" | links | style="background-color:rgba(0,0,255, 0.15)" | links |- | style="background-color:rgba(255,0,255, 0.15)" | about | style="background-color:rgba(255,255,0, 0.15)" | contribute | style="background-color:rgba(255,255,0, 0.15)" | contribute |} Where <code>welcome</code> is the contents of [[{{MediaWiki:Mainpage}}/welcome]], <code>about</code> is the contents of [[{{MediaWiki:Mainpage}}/about]], and so on. See [[Template:Main page box]] for more information about creating your own boxes. If you enter a keyword that does not have a corresponding box already, you'll be prompted to create one when saving or previewing the page. If you leave a keyword out of a certain layout, it will not be displayed on that layout. A warning will be given at the top of the edit preview in case this was an accident, but can be safely ignored if intentional. For additional hints and information, see the comments that came on your main page or ask a wiki.gg staff member for help. ==Technical explanation== For the CSS savvy, this section explains how it works a bit under the hood. The input to desktop, tablet, and mobile create [https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties CSS variables] which are then used as the value of [https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-areas grid-template-areas] in media queries for screen widths >=1350px, >=990px, and <990px. The boxes are given an id based on their subpage name, which is then used by the module to find the template, as well as by the box templates to assign them a CSS id of <code>mp-box-<keyword></code>. Since these keywords are used directly in the grid layout, they must follow the rules of [https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident <custom-ident>] naming. ==Dependencies== For this template to work properly, you need the following: * [[Module:Main page]] * All templates in [[:Category:Main page templates]]. * All CSS within the "Main page layout" section found in [[MediaWiki:Common.css]]. The <code>[[MediaWiki:Gadgets/mpEditLinks|mpEditLinks]]</code> gadget is also highly recommended. Its code can be found at [[MediaWiki:Gadgets/mpEditLinks/main.css]] and [[MediaWiki:Gadgets/mpEditLinks/main.js]]. ==TemplateData== <templatedata> { "params": { "desktop": { "label": "Desktop", "description": "The layout for wide screens", "required": true, "type": "string" }, "tablet": { "label": "Tablet", "description": "The layout for mid-width screens", "required": true, "type": "string" }, "mobile": { "label": "Mobile", "description": "The layout for narrow screens", "required": true, "type": "string" } }, "description": "Creates an IMP Main Page.", "format": "block" } </templatedata> <noinclude>[[Category:Template documentation]]</noinclude> c5052ca4c6f9f0e1e2c0a81cea00e372d4bacdca Template:Ct 10 159 182 2025-04-09T22:24:07Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <code><nowiki>[</nowiki>[[Special:CargoTables/{{{1}}}|{{{1}}}]]<nowiki>]</nowiki>{{#if:{{{2|}}}|.{{{2}}}}}</code><noinclude> [[Category:Formatting templates]]</noinclude> d868545d4d3eeb1545e963d063199a68abba7836 Template:Main page box/missing 10 160 183 2025-04-09T22:24:07Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{Main page box/start | title = {{{1}}} | style = text-align:center; | class = missing }} The {{{1}}} box does not exist. Check your spelling or create it here:<br/> {{Main page box/create|{{{1|}}}|rootpage = {{{rootpage|}}}}}<br/> See [[Template:Main page box]] for more information. {{Main page box/end}}<noinclude>[[Category:Main page templates]]</noinclude> 5cff88dacf33c912d4aa04c1541e684a5f3e79bb Template:Iter 10 161 184 2025-04-09T22:24:08Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{#vardefine:varname|ITER_INDEX_{{#if:{{{1|}}}|{{{1}}}|default}}<!-- end vardefine -->}}<!-- main logic -->{{#vardefineecho:{{#var:varname}}| {{#expr: {{#ifeq:{{lc:{{{reset|}}}<!-- end lc -->}} |yes |0 |{{#var:{{#var:varname}}|0}} <!-- end ifeq -->}} + {{#if:{{{get|}}}|0|1}} <!-- end expr -->}} <!-- end vde -->}}</includeonly><noinclude>{{documentation}} [[Category:Templates]]</noinclude> c37a3625d58a115a140f129da248ec1c9f6cb55e Template:Iter/doc 10 162 185 2025-04-09T22:24:08Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This template helps you create indexed columns in tables (particularly [[support:Cargo|Cargo]] queries) and to retrieve iterator values when using the parser function <code><nowiki>{{#arraymaptemplate</nowiki></code> (bundled with Extension:ParserPower on wiki.gg). == Simple counting == <pre> * {{iter|}} * {{iter|}} * {{iter|}} * {{iter|}} </pre> * {{iter|}} * {{iter|}} * {{iter|}} * {{iter|}} == Reset the counter == <pre> * {{iter|reset=yes}} * {{iter|}} * {{iter|reset=yes}} * {{iter|}} </pre> * {{iter|reset=yes}} * {{iter|}} * {{iter|reset=yes}} * {{iter|}} == Multiple counters == <pre> * {{iter|key1}} * {{iter|key2}} * {{iter|key2}} * {{iter|key1}} </pre> * {{iter|key1}} * {{iter|key2}} * {{iter|key2}} * {{iter|key1}} == Get value without incrementing == <pre> * {{iter|reset=yes}} * {{iter|}} * {{iter|}} * {{iter|get=yes}} </pre> * {{iter|reset=yes}} * {{iter|}} * {{iter|}} * {{iter|get=yes}} <noinclude> [[Category:Template documentation]] </noinclude> 20b5a53a6457493d2a2a9774b803511678a65760 Template:License/permission 10 163 186 2025-04-09T22:24:08Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = permission | icon = [[File:IN COPYRIGHT.svg|50px|link=|IN COPYRIGHT WITH PERMISSION]] | text = This file is copyrighted. The copyright holder has given permission for its use on wiki.gg. }}</includeonly><noinclude> This template currently looks like: {{License/permission}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 854af75c8477c36c50cb5d103ad8a933892fc322 187 186 2025-04-09T22:24:09Z ARTIFICER 564804 Protected "[[Template:License/permission]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite)) wikitext text/x-wiki <includeonly>{{License/template | source = {{{source|}}} | type = permission | icon = [[File:IN COPYRIGHT.svg|50px|link=|IN COPYRIGHT WITH PERMISSION]] | text = This file is copyrighted. The copyright holder has given permission for its use on wiki.gg. }}</includeonly><noinclude> This template currently looks like: {{License/permission}} See {{tl|License}} for full license documentation [[Category:License templates]]</noinclude> 854af75c8477c36c50cb5d103ad8a933892fc322 Template:Flag 10 164 188 2025-04-09T22:24:09Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly><!-- --><span class="country-flag" title="{{{2|}}}">{{#if: {{{1|}}} | [[File:Flag {{{1|}}}.svg|x20px|link=]] | }}</span><!-- --></includeonly><!-- --><noinclude>{{doc}}[[Category:Formatting templates]]</noinclude> 9802f61bee0e36120c835608ccee85e72384341b Template:Flag/doc 10 165 189 2025-04-09T22:24:09Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This formatting template allows you to display country flags inline. Available country flags can be seen in [[dev:Category:Country_flags|our Commons Wiki]]. == Usage == The template can be used with the following formatting: <code><nowiki>{{flag|code|Legend}}</nowiki></code>, where: * <code>code</code> is the [[wikipedia:ISO 3166-1 alpha-2|ISO 3166-1 alpha-2]] code for the country flag. * <code>Legend</code> is the legend displayed on hover (optional). == Examples == {| class="wikitable" ! Code !! Result |- | <code><nowiki>{{flag|ca|Canada}}</nowiki></code> || {{flag|ca|Canada}} |} <noinclude>[[Category:Template documentation]]</noinclude> 1fb455be1ffbed259dd27df18dd447e605746ed4 Template:Disambig 10 166 190 2025-04-09T22:24:10Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki #redirect [[Template:Disambiguation]] f220bcb889e0ce686a839d64ec6c4359b0e8bfb7 Category:Documentation templates 14 167 191 2025-04-09T22:24:11Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Templates]] 06eecdec29f6cb215c99cf216d1e3bdc8c30a95e Category:Templates 14 168 192 2025-04-09T22:24:11Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:{{SITENAME}}]] dd8aaa34cf600c1567d240a3f4bc615164a11592 Category:Notice templates 14 169 193 2025-04-09T22:24:12Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Templates]] 06eecdec29f6cb215c99cf216d1e3bdc8c30a95e Category:Formatting templates 14 170 194 2025-04-09T22:24:12Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Templates]] 06eecdec29f6cb215c99cf216d1e3bdc8c30a95e Category:License templates 14 171 195 2025-04-09T22:24:12Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Templates]] 06eecdec29f6cb215c99cf216d1e3bdc8c30a95e Category:Pages using DynamicPageList3 parser function 14 172 196 2025-04-09T22:24:13Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] d17f98d5d77b5951b7a80755914239533ad6aba6 Category:Candidates for deletion 14 173 197 2025-04-09T22:24:13Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Hidden categories 14 174 198 2025-04-09T22:24:13Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki These categories are hidden on article pages. [[Category:Wiki maintenance]] e4d17499a8377d3f2b4b4a618a671e53111f43ca Category:Images 14 175 199 2025-04-09T22:24:14Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Media]] b141d2b9971d6efe9f59bd03449781e71411c631 Category:Infobox templates 14 176 200 2025-04-09T22:24:14Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Templates]] 06eecdec29f6cb215c99cf216d1e3bdc8c30a95e Category:Logos 14 177 201 2025-04-09T22:24:14Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Images]] 8820b63e35aedd9d2666fe40b965d4e91ce0a106 Category:Media 14 178 202 2025-04-09T22:24:15Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:{{SITENAME}}]] dd8aaa34cf600c1567d240a3f4bc615164a11592 Category:Pages containing omitted template arguments 14 179 203 2025-04-09T22:24:15Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages using TabberTransclude parser tag 14 180 204 2025-04-09T22:24:16Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] d17f98d5d77b5951b7a80755914239533ad6aba6 Category:Pages using Tabber parser tag 14 181 205 2025-04-09T22:24:16Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] d17f98d5d77b5951b7a80755914239533ad6aba6 Category:Pages using duplicate arguments in template calls 14 182 206 2025-04-09T22:24:16Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages where expansion depth is exceeded 14 183 207 2025-04-09T22:24:17Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages where template include size is exceeded 14 184 208 2025-04-09T22:24:17Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages where the unstrip depth limit is exceeded 14 185 209 2025-04-09T22:24:17Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages where the unstrip size limit is exceeded 14 186 210 2025-04-09T22:24:18Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages with broken file links 14 187 211 2025-04-09T22:24:18Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Wiki maintenance]] 197b5fc8ebad5537759adacc0079b4b2662cb4c4 Category:Pages with ignored display titles 14 188 212 2025-04-09T22:24:18Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages with math errors 14 189 213 2025-04-09T22:24:19Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages with non-numeric formatnum arguments 14 190 214 2025-04-09T22:24:19Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages with reference errors 14 191 215 2025-04-09T22:24:20Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages with script errors 14 192 216 2025-04-09T22:24:20Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages with syntax highlighting errors 14 193 217 2025-04-09T22:24:21Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages with template loops 14 194 218 2025-04-09T22:24:21Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages with too many expensive parser function calls 14 195 219 2025-04-09T22:24:22Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Promotional images 14 196 220 2025-04-09T22:24:22Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki Official images used for purposes of promoting the game, that may not actually represent gameplay. [[Category:Images]] 80b893c439747ce681cf18cc579c3bc4c65cd502 Category:Stubs 14 197 221 2025-04-09T22:24:22Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Template documentation 14 198 222 2025-04-09T22:24:23Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Templates]] [[Category:Wiki maintenance]] c1800be0da4588b3b652fa5324aade2c496fb3c5 Category:Templates with no documentation 14 199 223 2025-04-09T22:24:23Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Templates]] [[Category:Wiki maintenance]] b1ff76c0593194e53e6bf42f37ca337a5493c57e Category:Wiki maintenance 14 200 224 2025-04-09T22:24:23Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki The sub-categories of this category contain pages that have been identified as needing attention for one or more of the following reasons: * Changes have been suggested that should be discussed first or are under discussion. * The page has flaws that need addressing by an editor with the knowledge or skills to help. * The action the page needs requires special rights. ''See also:'' * [[Special:BrokenRedirects|Broken redirects]] * [[Special:DoubleRedirects|Double redirects]] * [[Special:UncategorizedCategories|Uncategorized categories]] * [[Special:UncategorizedFiles|Uncategorized files]] * [[Special:UncategorizedPages|Uncategorized pages]] * [[Special:UncategorizedTemplates|Uncategorized templates]] * [[Special:WantedCategories|Wanted categories]] * [[Special:WantedFiles|Wanted files]] * [[Special:WantedPages|Wanted pages]] * [[Special:WantedTemplates|Wanted templates]] * [[Special:TrackingCategories|Other special tracking categories]] [[Category:{{SITENAME}}]] 4b90dc0dbd8c91e131e4ffcf22360b1c837b9717 Category:Wiki skin images 14 201 225 2025-04-09T22:24:24Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Images]] 8820b63e35aedd9d2666fe40b965d4e91ce0a106 Category:Pages using DynamicPageList3 dplvar parser function 14 202 226 2025-04-09T22:24:25Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] d17f98d5d77b5951b7a80755914239533ad6aba6 Category:Pages including data maps failing validation 14 203 227 2025-04-09T22:24:25Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ __HIDDENCAT__ [[Category:Wiki maintenance]] 57e36e9878c3eb806aa6ee6f748a5c5e0cdd5a97 Category:Pages including data maps 14 204 228 2025-04-09T22:24:25Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] d17f98d5d77b5951b7a80755914239533ad6aba6 Category:Maps failing data validation 14 205 229 2025-04-09T22:24:26Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ __HIDDENCAT__ [[Category:Wiki maintenance]] 57e36e9878c3eb806aa6ee6f748a5c5e0cdd5a97 Category:Legal notices 14 206 230 2025-04-09T22:24:26Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:{{SITENAME}}]] dd8aaa34cf600c1567d240a3f4bc615164a11592 Category:Pages setting LuaCache keys 14 207 231 2025-04-09T22:24:26Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ __HIDDENCAT__ [[Category:Wiki maintenance]] 57e36e9878c3eb806aa6ee6f748a5c5e0cdd5a97 Category:Hatnote templates 14 208 232 2025-04-09T22:24:27Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Templates]] 06eecdec29f6cb215c99cf216d1e3bdc8c30a95e Category:Key template documentation 14 209 233 2025-04-09T22:24:27Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Template documentation]] e65ecf60878d4707b3b4c1e3962615e2d5f3b2ab Category:Navigation templates 14 210 234 2025-04-09T22:24:27Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Templates]] 06eecdec29f6cb215c99cf216d1e3bdc8c30a95e Category:Pages with failing Cargo queries 14 211 235 2025-04-09T22:24:28Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages with math render errors 14 212 236 2025-04-09T22:24:28Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] 786037995b8f7e89762a8ea13b84ade091453c00 Category:Pages with DRUID infoboxes 14 213 237 2025-04-09T22:24:29Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This category contains every page with a DRUID infobox. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS. __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ [[Category:Categories for loading gadgets]] 17ed4520e5c453209616df3c9b2306fce8ceb12f Category:Pages with navboxes 14 214 238 2025-04-09T22:24:29Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This category contains every page with a {{tl|navbox}}. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS. __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ [[Category:Categories for loading gadgets]] 3e48f396fafee5d8aecf6cd0dcb554c769f485a9 Category:Pages with amboxes 14 215 239 2025-04-09T22:24:30Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This category contains every page with an {{tl|ambox}}. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS. __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ [[Category:Categories for loading gadgets]] de382f794395f344d0147dbb96b9542d6f38f624 Category:Pages with hatnotes 14 216 240 2025-04-09T22:24:30Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This category contains every page with a {{tl|hatnote}}. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS. __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ [[Category:Categories for loading gadgets]] 4ac7721cfcffb2f181820164d95f3af8d86c4fd7 Category:Pages with spoilers 14 217 241 2025-04-09T22:24:30Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This category contains every page with a {{tl|spoiler}}. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS. __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ [[Category:Categories for loading gadgets]] 5822aa87e8a8897673ff589d00d2f0d622aa3be5 Category:Pages with quotes 14 218 242 2025-04-09T22:24:31Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This category contains every page with a {{tl|quote}}. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS. __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ [[Category:Categories for loading gadgets]] 2f764cddd1fb264f48b896ffd6e892df3c391e90 Category:Pages with colors 14 219 243 2025-04-09T22:24:31Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This category contains every page with a {{tl|color}}. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS. __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ [[Category:Categories for loading gadgets]] bcca0312385263c30522c744df6a8c8856c68fab Category:Main page templates 14 220 244 2025-04-09T22:24:31Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Templates]] 06eecdec29f6cb215c99cf216d1e3bdc8c30a95e Category:Main page boxes 14 221 245 2025-04-09T22:24:32Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Main page templates]] ce086f8cfa39aeb8137ffe34e5d41aa38300cf4e Category:Pages using the RSS extension 14 222 246 2025-04-09T22:24:32Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ [[Category:Wiki maintenance]] d17f98d5d77b5951b7a80755914239533ad6aba6 Category:Pages with Discord embeds 14 223 247 2025-04-09T22:24:32Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki This category contains every page with a {{tl|Discord}} embed. It can be used for maintenance but primarily exists to enable the use of gadgets for targeted CSS and JS. __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ [[Category:Categories for loading gadgets]] 11ff5616854d8913d2c371ae3c2c610278651846 Category:Categories for loading gadgets 14 224 248 2025-04-09T22:24:33Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki [[Category:Wiki maintenance]] 197b5fc8ebad5537759adacc0079b4b2662cb4c4 MediaWiki:Vector.css 8 225 249 2025-04-09T22:24:34Z ARTIFICER 564804 Importing default loadout css text/css /* All CSS here will be loaded for users of the Vector skin */ /********************************************************* * Backwards compatibility with deprecated variable names * **********************************************************/ :root { --wiki-heading-color: var(--wiki-content-heading-color); } /**************************************** * End backwards compatibility variables * *****************************************/ /************************************ * Body, head, and general framework * *************************************/ html, body{ height: auto; min-height: 100%; } body { background-color: var(--wiki-body-background-color); background-image: var(--wiki-body-background-image); /* the following have fallbacks for backwards compatibility with older versions of the loadout */ background-position: var(--wiki-body-background-position, top center); background-size: var(--wiki-body-background-size, cover); background-repeat: var(--wiki-body-background-repeat, no-repeat); background-attachment: var(--wiki-body-background-attachment, fixed); font-family: var(--wiki-body-font-family); accent-color: var(--wiki-accent-color); box-sizing: border-box; } /* clear fix */ body::after{ content: ""; display: table; clear: both; } #mw-page-base { background:none; } /* let ul default to text that respects color */ ul { list-style-image: none; } /************************ * End general framework * *************************/ /************** * Vector tabs * ***************/ .vector-menu-tabs-legacy { padding-left: var(--wiki-content-border-width, 1px); } .vector-menu-tabs-legacy li, #p-cactions { background-image: linear-gradient( to top, var(--wiki-navigation-border-color) 0, var(--wiki-navigation-background-color) var(--wiki-content-border-width, 1px), var(--wiki-navigation-background-color--secondary) 100%); } #p-cactions { z-index: 5; } #p-variants { background-color: var(--wiki-content-background-color); } .vector-menu-dropdown { /* Matching a built-in rule for .vector-menu-tabs-legacy */ height: 2.5em; } .vector-menu-tabs-legacy li.selected { background: var(--wiki-navigation-selected-background-color); border-color: var(--wiki-navigation-selected-border-color); } .vector-menu-tabs, .vector-menu-tabs a, #mw-head .vector-menu-dropdown .vector-menu-heading{ background-image: linear-gradient(to bottom,transparent 0,var(--wiki-navigation-border-color) 100%); background-size: var(--wiki-content-border-width, 1px) 100%; } .vector-menu-tabs li a, .vector-menu-tabs li.new a, .vector-menu-tabs li.new a:visited, .vector-menu-tabs .selected a, .vector-menu-tabs .selected a:visited, #mw-head .vector-menu-dropdown .vector-menu-heading { color: var(--wiki-navigation-text-color); } .vector-menu-tabs .selected a, .vector-menu-tabs .selected a:visited { color: var(--wiki-navigation-selected-text-color); } .vector-menu-dropdown .vector-menu-content { background: none; border: none; box-shadow:none; margin-top:-1px; } .vector-menu-dropdown .vector-menu-content-list { background-color: var(--wiki-navigation-background-color--secondary); border: 1px solid var(--wiki-navigation-border-color); } div.vectorMenu .mw-list-item a, .vector-menu-dropdown .mw-list-item a, .vector-menu-dropdown .mw-list-item.selected a, .vector-menu-dropdown .mw-list-item.selected a:visited { color: var(--wiki-navigation-text-color); } .vector-menu-tabs li a:hover, .vector-menu-tabs li.new a:hover, .vector-menu-tabs li.new a:visited:hover, #mw-head .vector-menu-dropdown .vector-menu-heading:hover, div.vectorMenu .mw-list-item a:hover, .vector-menu-dropdown .mw-list-item.selected a:hover, .vector-menu-dropdown .mw-list-item.selected a:visited:hover { color:var(--wiki-navigation-text-color--hover); } .vector-menu-tabs .selected a:hover, .vector-menu-tabs .selected a:visited:hover { /* don't use the regular hover color because the background of selected could be different */ color: var(--wiki-navigation-selected-text-color); } .vector-menu-dropdown .vector-menu-heading::after { filter: brightness(0) var(--wiki-icon-to-link-filter); } #p-search { z-index:2; } #p-search .searchButton { background-color:transparent; } /****************** * End vector tabs * *******************/ /******** * Links * *********/ a, .mw-parser-output a.external, .mw-parser-output a.extiw { color: var(--wiki-content-link-color); } a:visited, .mw-parser-output a.extiw:visited, .mw-parser-output a.external:visited { color: var(--wiki-content-link-color--visited); } a:not(.mw-selflink):hover, a:visited:hover, .mw-parser-output a.extiw:hover, .mw-parser-output a.extiw:visited:hover, .mw-parser-output a.external:hover, .mw-parser-output a.external:visited:hover { color:var(--wiki-content-link-color--hover); } a.new, a.new:visited, a.new:hover, .mw-usertoollinks-contribs-no-edits { color:var(--wiki-content-redlink-color); } a:not(.mw-selflink):active, a:visited:active, .mw-parser-output a.extiw:active, .mw-parser-output a.extiw:visited:active, .mw-parser-output a.external:active, .mw-parser-output a.external:visited:active { color: var(--wiki-warning-color); } /* move external marker to an after so we can filter it to link color */ .mw-parser-output a.external { background:none; padding-right: 0; } .mw-parser-output a.external::after { display:inline-block; width:1em; height:1em; margin-left:1px; content:''; vertical-align: text-top; --mask: var(--icon) no-repeat; --mask-size: 0.857em; --mask-position: center right; -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-size: var(--mask-size); mask-size: var(--mask-size); -webkit-mask-position: var(--mask-position); mask-position: var(--mask-position); background-color: currentColor; } .mw-parser-output a.external::after { margin-left:0; --icon: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2212%22 height=%2212%22 viewBox=%220 0 12 12%22%3E %3Cpath d=%22M6 1h5v5L8.86 3.85 4.7 8 4 7.3l4.15-4.16L6 1ZM2 3h2v1H2v6h6V8h1v2a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z%22/%3E %3C/svg%3E"); } .plainlinks a.external::after { display:none; } a.extiw[title^="wikipedia:"]::after, a.extiw[title^="wp:"]::after, a.extiw[title^="mw:"]::after, a.extiw[title^="support:"]::after { display:inline-block; width:1em; height:1em; margin-left:1px; background-position: center right; background-repeat: no-repeat; background-size: 0.857em; content:''; vertical-align: text-top; } a.extiw[title^="wikipedia:"]::after, a.extiw[title^="wp:"]::after { background-image:url(https://commons.wiki.gg/images/2/28/Wikipedia.svg?202406); } a.extiw[title^="mw:"]::after { background-image:url(https://commons.wiki.gg/images/9/9b/MediaWiki.svg?202406); } a.extiw[title^="support:"]::after { background-image:url(https://commons.wiki.gg/images/9/9b/Wiki.gg_icon-pink.svg); } /************ * End links * *************/ /*************** * Left Sidebar * ****************/ #mw-panel .vector-menu-portal { background-color: var(--wiki-sidebar-background-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-sidebar-background-color) var(--wiki-sidebar-background-opacity), transparent); border: var(--wiki-sidebar-border-width, 1px) solid var(--wiki-sidebar-border-color); margin: 0 0.5em; } #mw-panel .vector-menu-portal + .vector-menu-portal { border-top-width: 0; } #mw-panel .vector-menu-portal:last-child { margin-bottom:0; } .vector-menu-portal .vector-menu-heading { padding: 0.5rem 0.25rem 0 0.5rem; margin: 0; background: none; color: var(--wiki-sidebar-heading-color); font-family:var(--wiki-sidebar-heading-font-family); } .vector-menu-portal .vector-menu-content { margin: 0 0.5em; } .vector-menu-portal .vector-menu-content li a{ display: block; } .vector-menu-portal .vector-menu-content .mw-list-item a, .vector-menu-portal .vector-menu-content .mw-list-item a:visited, .vector-menu-portal .vector-menu-content li a, .vector-menu-portal .vector-menu-content li a:visited { color: var(--wiki-sidebar-link-color); } .vector-menu-portal .vector-menu-content .mw-list-item a:hover, .vector-menu-portal .vector-menu-content .mw-list-item a:visited:hover { color:var(--wiki-sidebar-link-color--hover); } #t-newpage { --sidebar-icon:url('data:image/svg+xml;charset=UTF-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 384 512%22%3E%3C!--%21Font Awesome Free 6.5.2 by %40fontawesome - https%3A%2F%2Ffontawesome.com License - https%3A%2F%2Ffontawesome.com%2Flicense%2Ffree Copyright 2024 Fonticons%2C Inc.--%3E%3Cpath d%3D%22M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z%22%2F%3E%3C%2Fsvg%3E'); order:-1; } #t-upload { --sidebar-icon: url('data:image/svg+xml;charset=UTF-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 512 512%22%3E%3C!--%21Font Awesome Free 6.5.2 by %40fontawesome - https%3A%2F%2Ffontawesome.com License - https%3A%2F%2Ffontawesome.com%2Flicense%2Ffree Copyright 2024 Fonticons%2C Inc.--%3E%3Cpath d%3D%22M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z%22%2F%3E%3C%2Fsvg%3E'); order:-1; } #t-print { --sidebar-icon: url('data:image/svg+xml;charset=UTF-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 512 512%22%3E%3C!--%21Font Awesome Free 6.5.2 by %40fontawesome - https%3A%2F%2Ffontawesome.com License - https%3A%2F%2Ffontawesome.com%2Flicense%2Ffree Copyright 2024 Fonticons%2C Inc.--%3E%3Cpath d%3D%22M128 0C92.7 0 64 28.7 64 64v96h64V64H354.7L384 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0H128zM384 352v32 64H128V384 368 352H384zm64 32h32c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v96c0 17.7 14.3 32 32 32H64v64c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V384zM432 248a24 24 0 1 1 0 48 24 24 0 1 1 0-48z%22%2F%3E%3C%2Fsvg%3E'); order:-1; } #t-whatlinkshere { --sidebar-icon: url('data:image/svg+xml;charset=UTF-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 640 512%22%3E%3C!--%21Font Awesome Free 6.5.2 by %40fontawesome - https%3A%2F%2Ffontawesome.com License - https%3A%2F%2Ffontawesome.com%2Flicense%2Ffree Copyright 2024 Fonticons%2C Inc.--%3E%3Cpath d%3D%22M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z%22%2F%3E%3C%2Fsvg%3E'); order:-1; } #t-specialpages { --sidebar-icon: url('data:image/svg+xml;charset=UTF-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 576 512%22%3E%3C!--%21Font Awesome Free 6.5.2 by %40fontawesome - https%3A%2F%2Ffontawesome.com License - https%3A%2F%2Ffontawesome.com%2Flicense%2Ffree Copyright 2024 Fonticons%2C Inc.--%3E%3Cpath d%3D%22M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z%22%2F%3E%3C%2Fsvg%3E'); order:-1; } #t-cargopagevalueslink { --sidebar-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' version='1.1' viewBox='0 0 126.971 136.024'%3E%3Cpath d='m105.999 0-84 .049L0 8.957v127.065h126.97V8.957Z' fill='none' display='inline' opacity='1' paint-order='normal'/%3E%3Cpath d='m9.735 8.774 12.265-5h84l12.25 5H9.75' fill='%23000' fill-opacity='1' display='inline'/%3E%3Cpath d='M3.5 41.024H28v63.5H3.5zm95.5 0h24.5v63.5H99zm-95.5 67.5H123v24H3.5zm0-95.5H123v24H3.5zm27.985 28V59.67l13.61 13.61 17.323 17.324 1.788 1.787 12.131 12.132h19.147v-16.21l-13.6-13.6-1.788-1.787-17.325-17.324-14.578-14.579H31.485zm45.865 0-12.2 12.2 17.324 17.324 13.01-13.01V41.024H77.35zM42.716 75.658l-11.23 11.231v17.634h17.013l11.541-11.54-17.324-17.325z' fill='%23000' fill-opacity='1' fill-rule='nonzero' display='inline' opacity='1' paint-order='normal'/%3E%3C/svg%3E"); order:-1; } #t-specialpages > a::before, #t-whatlinkshere > a::before, #t-print > a::before, #t-newpage > a::before, #t-upload > a::before, #t-cargopagevalueslink > a::before { content:''; background-image:var(--sidebar-icon); background-size:contain; background-repeat:no-repeat; background-position:center; display:inline-block; width:15px; height:15px } #p-tb .mw-list-item > a::before { filter:var(--wiki-icon-to-link-filter) } #p-tb .mw-list-item > a { display:flex; align-items:center; gap:3px } #p-tb .vector-menu-content-list { display:flex; flex-direction:column; } /* Sidebar spacing and border-radius section */ #mw-panel .vector-menu-portal:not(:last-child) { margin-bottom:var(--wiki-sidebar-portal-spacing); } #mw-panel #p-logo + .vector-menu-portal { /* The way this works is that if the sidebar does not have any spacing, only the top and bottom corners of the top and bottom portals respectively should be rounded, instead of all corners of every portal. min and calc are combined here to basically create an `if x > 0 then y else z` function. The lower of (sidebar-border-radius) and (spacing * 999) are compared and the smaller value is taken (999 is simply an arbitrary large number). If portal spacing is zero, multiplying it gets 0 and will be the smaller value. If it's non-zero, it will be large and sidebar-border-radius will be the smaller value. This is only applied to the "inner" corners because we'd want the "outer" corners rounded in either scenario. */ border-radius: var(--wiki-sidebar-border-radius) var(--wiki-sidebar-border-radius) calc(min(var(--wiki-sidebar-border-radius), var(--wiki-sidebar-portal-spacing) * 999 )) calc(min(var(--wiki-sidebar-border-radius), var(--wiki-sidebar-portal-spacing) * 999 )); } #mw-panel .vector-menu-portal:last-child { /* see rule above for explanation */ border-radius: calc(min(var(--wiki-sidebar-border-radius), var(--wiki-sidebar-portal-spacing) * 999 )) calc(min(var(--wiki-sidebar-border-radius), var(--wiki-sidebar-portal-spacing) * 999 )) var(--wiki-sidebar-border-radius) var(--wiki-sidebar-border-radius); } #mw-panel .vector-menu-portal { /* see above rules for explanation */ border-radius:calc(min(var(--wiki-sidebar-border-radius), var(--wiki-sidebar-portal-spacing) * 999 )); } #mw-panel .vector-menu-portal + .vector-menu-portal { /* This keeps the border from doubling up if there is no spacing between them, The portals other than the first only have a top border if there is spacing */ border-top-width: min(var(--wiki-sidebar-border-width, 1px), var(--wiki-sidebar-portal-spacing, 0px)); /* the 1px and 0px fallbacks are for backwards compatibility with older versions of the loadout */ } /* end sidebar spacing and border-radius */ /******************* * End left sidebar * ********************/ /******* * Logo * ********/ /* [[File:Site-logo.png]] */ .mw-wiki-logo { background-size: contain; } /*********** * End logo * ************/ /*************** * Content area * ****************/ .mw-body, .parsoid-body, .mw-footer { color: var(--wiki-content-text-color); background-color: var(--wiki-content-background-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-background-color) var(--wiki-content-background-opacity), transparent); border: var(--wiki-content-border-width, 1px) solid var(--wiki-content-border-color); margin-right: 1em; } .mw-footer { border-top-width:0; } .mw-footer li { color: var(--wiki-content-text-color); } /* fix */ @media screen and (max-width: 900px) { #footer-icons, #footer-places { clear: unset; } } @media screen and (max-width: 981px) { .mw-body, .parsoid-body, .mw-footer { margin-right: 0; } } /******************************* * End content area and footer * *******************************/ /*********** * Headings * ************/ .mw-body h1, .mw-body h2 { border-bottom: 1px solid var(--wiki-content-border-color); font-family: var(--wiki-heading-font-family); } h1, h2, h3, h4, h5, h6 { color: var(--wiki-heading-color); } .client-js .mw-content-ltr .mw-editsection-bracket:first-of-type, .client-js .mw-content-rtl .mw-editsection-bracket:not(:first-of-type), .mw-editsection-divider, .client-js .mw-content-rtl .mw-editsection-bracket:first-of-type, .client-js .mw-content-ltr .mw-editsection-bracket:not(:first-of-type) { color: var(--wiki-heading-color); } /*************** * End headings * ****************/ /************* * Wikitables * **************/ .wikitable { background: var(--wiki-content-background-color); border-color: var(--wiki-content-border-color); color: var(--wiki-content-text-color); } .wikitable>tr>th, .wikitable>*>tr>th { background: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-border-color); } .wikitable>tr>td, .wikitable>*>tr>td { border: 1px solid var(--wiki-content-border-color); } /* Forward = yes bg on Special:Interwiki */ table.mw-interwikitable.body td.mw-interwikitable-local-yes { background: var(--content-background-color--secondary); /* fallback */ background: color-mix(in srgb, var(--wiki-success-color) 25%, transparent); } .zebra-table > * > tr:nth-of-type(2n), .zebra-table > tr:nth-of-type(2n) { background: transparent; /* fallback */ background: color-mix(in srgb, var(--wiki-content-dynamic-color--secondary) 5%, transparent); } .client-js .sortable:not(.jquery-tablesorter) > * > tr:first-child > th:not(.unsortable), .jquery-tablesorter th.headerSort { background-image: unset; position: relative; } .client-js .sortable:not(.jquery-tablesorter) > * > tr:first-child > th:not(.unsortable)::after, .jquery-tablesorter th.headerSort::after { content: ""; display: block; position: absolute; top: 0; right: 0; width: 21px; height: 100%; --mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2221%22 height=%229%22 viewBox=%220 0 21 9%22%3E %3Cpath d=%22m14.5 5-4 4-4-4zm0-1-4-4-4 4z%22 fill=%22%23fff%22/%3E %3C/svg%3E") no-repeat; -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-size: auto; mask-size: auto; -webkit-mask-position: center right; mask-position: center right; background-color: var(--wiki-content-link-color); } .jquery-tablesorter th.headerSortUp::after { --mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2221%22 height=%224%22 viewBox=%220 0 21 4%22%3E %3Cpath d=%22m6.5 4 4-4 4 4z%22 fill=%22%23fff%22/%3E %3C/svg%3E") no-repeat; } .jquery-tablesorter th.headerSortDown::after { --mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2221%22 height=%224%22 viewBox=%220 0 21 4%22%3E %3Cpath d=%22m14.5 0-4 4-4-4z%22 fill=%22%23fff%22/%3E %3C/svg%3E") no-repeat; } /***************** * End wikitables * ******************/ /************** * Preferences * ***************/ .mw-prefs-tabs-wrapper.oo-ui-panelLayout-framed, .mw-prefs-tabs>.oo-ui-menuLayout-content>.oo-ui-indexLayout-stackLayout>.oo-ui-tabPanelLayout { border: none; } .oo-ui-tabSelectWidget-framed { background-color: transparent; border-bottom: 1px solid var(--wiki-accent-color); } .oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-widget-enabled, .oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-widget-enabled:hover { background-color:var(--wiki-accent-label-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-label-color) 75%, transparent); color: var(--wiki-accent-color); } .oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-widget-enabled:hover { color: var(--wiki-accent-color--hover); } .oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected, .oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-widget-enabled.oo-ui-optionWidget-selected:hover { background-color: var(--wiki-accent-color); color: var(--wiki-accent-label-color); } .oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected .oo-ui-labelElement-label { border-bottom: none; } #preferences .mw-htmlform-submit-buttons { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); } .oo-ui-dropdownWidget.oo-ui-widget-enabled .oo-ui-dropdownWidget-handle, .oo-ui-dropdownInputWidget.oo-ui-widget-enabled, .oo-ui-textInputWidget .oo-ui-inputWidget-input, .oo-ui-textInputWidget.oo-ui-widget-enabled .oo-ui-inputWidget-input[readonly]:not(.oo-ui-pendingElement-pending) { background-color: var(--wiki-content-background-color--secondary); color: var(--wiki-content-text-color); border-color: var(--wiki-content-border-color); } .oo-ui-pendingElement-pending { background-color: var(--wiki-content-background-color--secondary); background-image: linear-gradient(135deg,var(--wiki-content-background-color) 25%,transparent 25%,transparent 50%,var(--wiki-content-background-color) 50%,var(--wiki-content-background-color) 75%,transparent 75%,transparent); } .oo-ui-dropdownInputWidget.oo-ui-widget-enabled select { color: var(--wiki-content-text-color); border-color: var(--wiki-content-border-color) } .view-dark .oo-ui-inputWidget-input.oo-ui-indicator-down { background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2212%22 height=%2212%22 viewBox=%220 0 12 12%22%3E%3Ctitle%3E down %3C/title%3E%3Cg fill=%22%23fff%22%3E%3Cpath d=%22M9.9 2.9 6 6.8 2.1 2.9 1 4l5 5 5-5z%22/%3E%3C/g%3E%3C/svg%3E"); } .oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:hover { color:var(--wiki-content-text-mix-color); border-color:var(--wiki-accent-color); } .oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:active { color: var(--wiki-content-dynamic-color); border-color: var(--wiki-accent-color) } .oo-ui-dropdownInputWidget select option, .oo-ui-dropdownInputWidget select optgroup { color: #000; } .oo-ui-dropdownWidget.oo-ui-widget-enabled .oo-ui-dropdownWidget-handle:hover, .oo-ui-dropdownWidget.oo-ui-widget-enabled .oo-ui-dropdownWidget-handle:focus, .oo-ui-dropdownWidget.oo-ui-widget-enabled .oo-ui-dropdownWidget-handle:active, .oo-ui-dropdownInputWidget.oo-ui-widget-enabled:hover, .oo-ui-dropdownInputWidget.oo-ui-widget-enabled:focus, .oo-ui-dropdownInputWidget.oo-ui-widget-enabled:active, .oo-ui-textInputWidget.oo-ui-widget-enabled:hover .oo-ui-inputWidget-input, .oo-ui-textInputWidget.oo-ui-widget-enabled .oo-ui-inputWidget-input:focus, .oo-ui-textInputWidget.oo-ui-widget-enabled:active .oo-ui-inputWidget-input, .oo-ui-textInputWidget.oo-ui-widget-enabled:hover .oo-ui-inputWidget-input:focus { background-color: var(--wiki-content-background-color--secondary); color: var(--wiki-content-text-color); border-color: var(--wiki-accent-color); box-shadow: none; } .oo-ui-radioInputWidget [type="radio"] + span { background-color:var(--wiki-content-dynamic-color--inverted); } .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked + span, .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:hover + span{ border-color:var(--wiki-accent-color); /* fallback */ border-color: color-mix(in srgb, var(--wiki-accent-color) 90%, transparent); } .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked:hover + span { border-color:var(--wiki-accent-color); } .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:active + span, .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked:active + span{ background-color:var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); border-color:var(--wiki-accent-color); /* fallback */ border-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); } .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked:focus + span::before { border-color: var(--wiki-content-dynamic-color--inverted); } .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked:active + span { border-color:var(--wiki-accent-color); /* fallback */ border-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); box-shadow: inset 0 0 0 1px var(--wiki-accent-color); /* fallback */ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); } .oo-ui-menuOptionWidget.oo-ui-widget-enabled.oo-ui-optionWidget { color: var(--wiki-content-text-color); border-color: var(--wiki-content-text-mix-color); } .oo-ui-menuOptionWidget.oo-ui-optionWidget.oo-ui-optionWidget-selected, .oo-ui-menuOptionWidget.oo-ui-optionWidget.oo-ui-optionWidget-highlighted, .oo-ui-menuOptionWidget.oo-ui-optionWidget.oo-ui-optionWidget-highlighted.oo-ui-optionWidget-selected, .oo-ui-dropdownWidget.oo-ui-widget-enabled.oo-ui-dropdownWidget-open .oo-ui-dropdownWidget-handle { background-color:var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent); color: var(--wiki-content-text-color); } .oo-ui-menuOptionWidget.oo-ui-optionWidget-selected.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted, .oo-ui-menuOptionWidget.oo-ui-optionWidget-pressed.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted { background-color: var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 10%, transparent); color: var(--wiki-accent-color); } .mw-prefs-tabs.mw-prefs-tabs-searching .oo-ui-tabPanelLayout.mw-prefs-search-matched > fieldset > legend { background: var(--wiki-content-background-color--secondary); } .mw-prefs-search-highlight { background-color: transparent !important; /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 7%, transparent) !important; outline-color: transparent !important; /* fallback */ outline-color: color-mix(in srgb, var(--wiki-accent-color) 7%, transparent) !important; } /**************** * End preferences * *****************/ /*************** * Page history * ****************/ #pagehistory li { background-color: transparent; border: none; } #pagehistory li.selected { background-color: var(--wiki-content-background-color--secondary); border: 1px dashed var(--wiki-content-border-color); color: var(--wiki-content-text-color); } .diff td.diff-addedline { background-color: var(--wiki-content-background-color); border-color: var(--wiki-success-color); border-width: 1px 1px 1px 4px; } .diff td.diff-addedline .diffchange { background-color: var(--wiki-success-color); color: var(--wiki-success-label-color); } .diff td.diff-deletedline { background-color: var(--wiki-content-background-color); border-color: var(--wiki-alert-color); border-width: 1px 1px 1px 4px; } .diff td.diff-deletedline .diffchange { background-color: var(--wiki-alert-color); color: var(--wiki-alert-label-color) } .diff td.diff-context { background:var(--wiki-content-text-mix-color-95); /* fallback */ background: color-mix(in srgb, var(--wiki-content-text-mix-color-95) 80%, var(--wiki-content-background-color)); border-color: var(--wiki-neutral-color, var(--wiki-content-text-mix-color)); /* fallback for backwards compatibility */ color: var(--wiki-content-text-color); } .diff-marker a.mw-diff-movedpara-right { color: transparent; } .diff-marker a.mw-diff-movedpara-right:hover:after { opacity: .75; } .diff-marker a.mw-diff-movedpara-right:after { color: var(--wiki-content-text-color); content: "\21a9"; } .diff-marker a.mw-diff-movedpara-left { color: transparent; } .diff-marker a.mw-diff-movedpara-left:hover:after { opacity: .75; } .diff-marker a.mw-diff-movedpara-left:after { color: var(--wiki-content-text-color); content: "\21aa"; } .mw-plusminus-neg { color:var(--wiki-alert-color); } .mw-plusminus-null{ color:var(--wiki-neutral-color, var(--wiki-content-text-mix-color)); /* fallback for backwards compatibility */ } .mw-plusminus-pos { color:var(--wiki-success-color); } .updatedmarker { background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-success-color) 25%, transparent); color:var(--wiki-content-text-color); } li span.deleted, span.history-deleted { color: var(--wiki-content-text-mix-color); } span.mw-history-suppressed { /* overrides above, since suppressed is also deleted */ color: var(--wiki-content-text-color); } /* inline diff (1.41) */ .mw-diff-inline-header { border-bottom: 1px solid var(--wiki-content-border-color); } .mw-diff-inline-added ins, .mw-diff-inline-changed ins, .mw-diff-inline-moved ins, .mw-diff-table-prefix .mw-diff-inline-legend .mw-diff-inline-legend-ins, .mw-diff-inline-added.mw-diff-empty-line::after, .mw-inline-diff-newline::after { background:var(--wiki-success-color); /* fallback */ background: color-mix(in srgb, var(--wiki-success-color) 90%, transparent); color: var(--wiki-success-label-color); display: inline-block; } .mw-diff-inline-added.mw-diff-empty-line::after, .mw-diff-inline-deleted.mw-diff-empty-line::after, .mw-inline-diff-newline::after { padding: 0.4em 0; } .mw-diff-inline-deleted del, .mw-diff-inline-changed del, .mw-diff-inline-moved del, .mw-diff-table-prefix .mw-diff-inline-legend .mw-diff-inline-legend-del, .mw-diff-inline-deleted.mw-diff-empty-line::after { background:var(--wiki-alert-color); /* fallback */ background: color-mix(in srgb, var(--wiki-alert-color) 90%, transparent); color: var(--wiki-alert-label-color); display: inline-block; } .mw-diff-movedpara-left::after, .mw-diff-movedpara-right::after { color: var(--wiki-content-text-color); } .ve-ui-diffElement-hasDescriptions .ve-ui-diffElement-content { border-right-color: var(--wiki-content-border-color); } .ve-ui-diffElement-attributeChange { color: var(--wiki-content-text-mix-color); } .ve-ui-diffElement-attributeChange ins { background-color:var(--wiki-success-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-success-color) 90%, transparent); box-shadow: 0 0 0 1px var(--wiki-success-color); /* fallback */ box-shadow: 0 0 0 1px color-mix(in srgb, var(--wiki-success-color) 90%, transparent); color: var(--wiki-success-label-color); } .ve-ui-diffElement-attributeChange del { background-color:var(--wiki-alert-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-alert-color) 90%, transparent); box-shadow: 0 0 0 1px var(--wiki-alert-color); /* fallback */ box-shadow: 0 0 0 1px color-mix(in srgb, var(--wiki-alert-color) 90%, transparent); color: var(--wiki-alert-label-color); } .ve-ui-diffElement-highlight { outline-color:var(--wiki-accent-color); /* fallback */ outline-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); } .ve-ui-changeDescriptionsSelectWidget > .oo-ui-optionWidget-highlighted { background:var(--wiki-accent-color); /* fallback */ background: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent); } /* Edit conflict */ .mw-twocolconflict-split-tour-image-dual-column-view-1 { filter:var(--wiki-icon-general-filter); } .mw-twocolconflict-split-tour-image-blue-dot { filter:brightness(0) var(--wiki-icon-to-link-filter); } .mw-pulsating-dot::before, .mw-pulsating-dot::after { background-color: var(--wiki-content-link-color); } .mw-twocolconflict-split-current-version-header .mw-twocolconflict-revision-label { background-color: var(--wiki-alert-color); color:var(--wiki-alert-label-color); } .mw-twocolconflict-special-your-version-header .mw-twocolconflict-revision-label, .mw-twocolconflict-split-your-version-header .mw-twocolconflict-revision-label { background-color: var(--wiki-success-color); color:var(--wiki-success-label-color); } .mw-twocolconflict-single-column.mw-twocolconflict-split-copy, .mw-twocolconflict-split-column.mw-twocolconflict-split-copy { border-color: var(--wiki-neutral-color, var(--wiki-content-text-mix-color)); /* fallback for backwards compatibility */ background-color: var(--wiki-content-text-mix-color-95); } .mw-twocolconflict-single-column .mw-twocolconflict-split-collapsed .mw-twocolconflict-split-fade, .mw-twocolconflict-split-column .mw-twocolconflict-split-collapsed .mw-twocolconflict-split-fade { background-image: linear-gradient(transparent, var(--wiki-content-text-mix-color-95)); } .mw-twocolconflict-single-column, .mw-twocolconflict-split-column { background-color: var(--wiki-content-background-color); color: var(--wiki-content-text-color); } .mw-twocolconflict-single-column.mw-twocolconflict-split-unselected, .mw-twocolconflict-split-column.mw-twocolconflict-split-unselected { color:var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 80%, transparent); } .mw-twocolconflict-single-column.mw-twocolconflict-split-unselected.mw-twocolconflict-split-delete, .mw-twocolconflict-split-column.mw-twocolconflict-split-unselected.mw-twocolconflict-split-delete { border-color:var(--wiki-alert-color); /* fallback */ border-color: color-mix(in srgb, var(--wiki-alert-color) 40%, transparent); } .mw-twocolconflict-single-column.mw-twocolconflict-split-delete, .mw-twocolconflict-split-column.mw-twocolconflict-split-delete { border-color: var(--wiki-alert-color); } .mw-twocolconflict-single-column.mw-twocolconflict-split-unselected.mw-twocolconflict-split-add, .mw-twocolconflict-split-column.mw-twocolconflict-split-unselected.mw-twocolconflict-split-add { border-color:var(--wiki-success-color); /* fallback */ border-color: color-mix(in srgb, var(--wiki-success-color) 40%, transparent); } .mw-twocolconflict-single-column.mw-twocolconflict-split-add, .mw-twocolconflict-split-column.mw-twocolconflict-split-add { border-color: var(--wiki-success-color); } .mw-twocolconflict-single-column.mw-twocolconflict-split-unselected del.mw-twocolconflict-diffchange, .mw-twocolconflict-split-column.mw-twocolconflict-split-unselected del.mw-twocolconflict-diffchange { background-color:var(--wiki-alert-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-alert-color) 30%, transparent); } .mw-twocolconflict-single-column.mw-twocolconflict-split-unselected del.mw-twocolconflict-diffchange, .mw-twocolconflict-split-column.mw-twocolconflict-split-unselected del.mw-twocolconflict-diffchange, .mw-twocolconflict-single-column del.mw-twocolconflict-diffchange, .mw-twocolconflict-split-column del.mw-twocolconflict-diffchange { background-color: var(--wiki-alert-color); color: var(--wiki-alert-label-color); } .mw-twocolconflict-single-column.mw-twocolconflict-split-unselected ins.mw-twocolconflict-diffchange, .mw-twocolconflict-split-column.mw-twocolconflict-split-unselected ins.mw-twocolconflict-diffchange, .mw-twocolconflict-single-column ins.mw-twocolconflict-diffchange, .mw-twocolconflict-split-column ins.mw-twocolconflict-diffchange { background-color: var(--wiki-success-color); color:var(--wiki-success-label-color); } .mw-twocolconflict-split-selection > div:nth-child(2) .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked + span, .mw-twocolconflict-split-selection > div:nth-child(2) .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:active + span, .mw-twocolconflict-split-selection > div:nth-child(2) .oo-ui-radioInputWidget [type="radio"] + span { border-color: var(--wiki-success-color); /* fallback */ border-color: color-mix(in srgb, var(--wiki-success-color) 80%, transparent); background: var(--wiki-content-background-color--secondary); /* fallback */ background: color-mix(in srgb, var(--wiki-success-color) 10%, transparent); } .mw-twocolconflict-split-selection > div:nth-child(2) .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:active + span, .mw-twocolconflict-split-selection > div:nth-child(2) .oo-ui-radioInputWidget [type="radio"] + span { border-color: var(--wiki-success-color); /* fallback */ border-color: color-mix(in srgb, var(--wiki-success-color) 90%, transparent); background: var(--wiki-content-background-color--secondary); /* fallback */ background: color-mix(in srgb, var(--wiki-success-color) 10%, transparent); } .mw-twocolconflict-split-selection > div:nth-child(1) .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:checked + span, .mw-twocolconflict-split-selection > div:nth-child(1) .oo-ui-radioInputWidget.oo-ui-widget-enabled [type="radio"]:active + span, .mw-twocolconflict-split-selection > div:nth-child(1) .oo-ui-radioInputWidget [type="radio"] + span { border-color:var(--wiki-alert-color); /* fallback */ border-color: color-mix(in srgb, var(--wiki-alert-color) 90%, transparent); background: var(--wiki-content-background-color--secondary); /* fallback */ background: color-mix(in srgb, var(--wiki-alert-color) 10%, transparent); } .mw-twocolconflict-split-editable .mw-twocolconflict-split-editor { color:var(--wiki-content-text-color); } /**/ /******************* * End page history * ********************/ /******************** * Table of contents * *********************/ #toc, .toc, .toccolours, .mw-warning { background-color: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-border-color); box-shadow: 0 0.1em 0.2em #000000; } #mw-toc-heading{ border: 0; } .toctogglelabel { color: var(--wiki-content-link-color); } .tocnumber { color: var(--wiki-content-text-color); } /************************ * End table of contents * *************************/ /************* * Thumbnails * **************/ img.thumbborder { border: 1px solid var(--wiki-content-border-color); padding: 5px; } div.thumbinner { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); } li.gallerybox div.thumb { background-color: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-border-color); } html .thumbimage { background-color: unset; border: 1px solid var(--wiki-content-border-color); } .thumb, .thumb .thumbinner, .thumb .thumbimage { max-width: 100%; box-sizing: border-box; } .thumb .thumbimage:not(audio) { height: auto; } /* packed-overlay and packed-hover modes for galleries */ ul.mw-gallery-packed-hover li.gallerybox:hover div.gallerytextwrapper, ul.mw-gallery-packed-overlay li.gallerybox div.gallerytextwrapper, ul.mw-gallery-packed-hover li.gallerybox.mw-gallery-focused div.gallerytextwrapper { background:var(--wiki-content-dynamic-color--inverted); /* fallback */ background: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 65%, transparent); } /* Responsive floating thumbnails */ @media screen and (max-width: 720px) { div.tright, div.floatright, div.tleft, div.floatleft { float: none; margin: 0 auto; width: fit-content; } } /***************** * End thumbnails * ******************/ /************** * Wiki editor * ***************/ #wpTextbox0 { /* need !important here to override inline styling */ background-color:var(--wiki-content-background-color) !important; } .wikiEditor-ui { border: none; } .wikiEditor-ui .wikiEditor-ui-top, .wikiEditor-ui .wikiEditor-ui-view { border-color:var(--wiki-content-border-color); } .wikiEditor-ui-toolbar { background: var(--wiki-content-background-color--secondary); } .wikiEditor-ui-toolbar .group, .wikiEditor-ui-toolbar .section-secondary .group { border-color:var(--wiki-content-border-color); } .wikiEditor-ui-toolbar .tabs span.tab a, .wikiEditor-ui-toolbar .tabs span.tab a:visited, .wikiEditor-ui-toolbar .tabs span.tab a.current, .wiikiEditor-ui-toolbar .tabs span.tab a.current:visited, .wikiEditor-ui-toolbar .booklet .index .current { color: var(--wiki-content-link-color); } .wikiEditor-ui-toolbar .group .tool-select .options { background: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-border-color); } .wikiEditor-ui-toolbar .group .tool-select .options .option { color: var(--wiki-content-text-color); } .wikiEditor-ui-toolbar .group .tool-select .menu .options .option:hover { background-color: var(--wiki-content-background-color); } .wikiEditor-ui-toolbar .tabs span.tab a::before, .wikiEditor-ui-toolbar .group .tool-select .label::after { filter: var(--wiki-icon-general-filter); } .wikiEditor-ui-toolbar .group .label, .wikiEditor-ui-toolbar .group .tool-select .label, .wikiEditor-ui-toolbar .page-table th, .wikiEditor-ui-toolbar .page-table td, .wikiEditor-ui-toolbar .page-characters div span, .wikiEditor-ui-toolbar .booklet .index div { color: var(--wiki-content-text-color); } .wikiEditor-ui-toolbar .booklet>.index> :hover { background-color: var(--wiki-content-background-color--secondary); } .wikiEditor-ui-toolbar .page-characters div span { border: 1px solid var(--wiki-content-border-color); } .wikiEditor-ui-toolbar .sections .section, .wikiEditor-ui-toolbar .booklet .pages, .wikiEditor-ui-toolbar .booklet .index .current, .wikiEditor-ui-toolbar .page-characters div span:hover { background-color: transparent; /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 5%, transparent); } .wikiEditor-ui-toolbar .sections .section { border-top: 1px solid var(--wiki-content-border-color); } .wikiEditor-ui-toolbar .page-characters div span:hover { border-color: var(--wiki-content-border-color); } .wikiEditor-ui-toolbar .page-table td { border-top: 1px solid var(--wiki-content-border-color); } .wikiEditor-ui-tabs div a { background: #9A647F; display: inline-block; } .wikiEditor-ui-tabs div.current { border-bottom: 1px solid #3B3352; } .wikiEditor-ui-tabs div.current a { font-weight: bold; } .wikiEditor-ui-tabs { border-left: 1px solid #3B3352; border-top: 1px solid #3B3352; } .wikiEditor-ui-text { background-color:var(--wiki-content-dynamic-color--inverted); } .wikiEditor-preview-contents { background: transparent; background-color: rgba(255, 255, 255, 0.2); border-color: #3B3352; border-style: solid; border-width: 0 1px 1px; } .wikiEditor-ui-controls { background: transparent; } .wikiEditor-preview-contents, .wikiEditor-preview-loading { background-color: transparent; } .mw-wikiEditor-InsertLink-TitleInputField .oo-ui-messageWidget, .mw-widget-titleWidget-menu .mw-widget-titleOptionWidget-description { color: var(--wiki-content-text-mix-color); } .wikiEditor-toolbar-dialog { max-width:100%; box-sizing:border-box; } .wikiEditor-toolbar-dialog .ui-dialog-content input[type='text']::placeholder { color: var(--wiki-content-text-mix-color); } .ext-WikiEditor-ResizingDragBar { background-color: var(--wiki-content-background-color--secondary); } .ext-WikiEditor-ResizingDragBar-ns { border-color: var(--wiki-content-border-color); } .ext-WikiEditor-ResizingDragBar span { background-color: var(--wiki-content-border-color); } .ext-WikiEditor-ResizingDragBar:hover span { background-color: var(--wiki-content-text-mix-color); } .ext-WikiEditor-twopanes-TwoPaneLayout .ext-WikiEditor-twopanes-pane1, .ext-WikiEditor-twopanes-TwoPaneLayout .ext-WikiEditor-twopanes-pane2 { border-color: var(--wiki-content-border-color); } .ext-WikiEditor-realtimepreview-button.oo-ui-toggleWidget-on .oo-ui-labelElement-label { color: var(--wiki-accent-color); } .wikiEditor-ui-toolbar .group, .wikiEditor-ui-toolbar .section-secondary .group { border-color: var(--wiki-content-border-color); } .ext-WikiEditor-realtimepreview-button:hover { background-color:var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent); color: var(--wiki-accent-color); border-color:var(--wiki-accent-color); box-shadow:inset 0 0 3px var(--wiki-accent-color); } .oo-ui-toggleButtonWidget.oo-ui-widget-enabled.oo-ui-buttonElement-frameless.oo-ui-toggleWidget-on .oo-ui-buttonElement-button { background-color: var(--wiki-content-background-color--secondary); } .ext-WikiEditor-reloadButton.oo-ui-buttonElement-framed.oo-ui-widget-enabled>.oo-ui-buttonElement-button, .ext-WikiEditor-reloadButton.oo-ui-buttonElement-framed.oo-ui-widget-enabled>.oo-ui-buttonElement-button:hover { background-color: var(--wiki-content-background-color); } .editOptions { background-color: var(--wiki-content-background-color--secondary); color: var(--wiki-content-text-color); border-color: var(--wiki-content-border-color); border-image: none; border-radius: 0 0 5px 5px; border-style: none solid solid; border-width: medium 1px 1px; } input#wpSummary { margin-bottom: 1em; margin-top: 1em; width: 80%; } .view-dark .ace_editor, .ace_editor { --ace-keywords: #CDA869; --ace-regexp: #E9C062; --ace-constants: #CF6A4C; --ace-illegal: #F8F8F8; --ace-deprecated: #D2A8A1; --ace-support: #9B859D; --ace-function: #DAD085; --ace-list: #F9EE98; --ace-variable: #7587A6; --ace-string: #8F9D6A; --ace-illegal-highlight: rgba(86, 45, 86, 0.75); --ace-step-highlight: #665200; --ace-multiselect-shadow: #141414; } .view-light .ace_editor{ --ace-keywords: #00f; --ace-regexp: #036a07; --ace-constants: #c5060b; --ace-illegal: #f00; --ace-deprecated: #f00; --ace-support: #6d79de; --ace-function: #3c4c72; --ace-list: #b90690; --ace-variable: #318495; --ace-string: #036a07; --ace-illegal-highlight: rgba(255, 0, 0, 0.1); --ace-step-highlight: #fcff00; --ace-multiselect-shadow: #fff; } .ace_editor .ace_gutter { background:var(--wiki-content-dynamic-color--inverted); /* fallback */ background: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 85%, transparent); } .ace_gutter-cell { color:var(--wiki-content-dynamic-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-dynamic-color) 40%, transparent); } .ace_editor .ace_print-margin { width: 1px; background:var(--wiki-content-dynamic-color--inverted); /* fallback */ background: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 75%, transparent); } .ace_editor { /* this image gradient hack effectively lets the element have 2 layers of background */ background-image: linear-gradient(var(--wiki-content-dynamic-color), var(--wiki-content-dynamic-color)); background-color: var(--wiki-content-dynamic-color--inverted); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 93%, transparent); color: var(--wiki-content-dynamic-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-dynamic-color) 93%, transparent); } .ace_editor .ace_cursor { color: var(--wiki-content-text-color); } .ace_editor .ace_marker-layer .ace_selection { background: var(--wiki-content-background-color--secondary); /* fallback */ background: color-mix(in srgb, var(--wiki-content-dynamic-color) 20%, transparent) } .ace_editor.ace_multiselect .ace_selection.ace_start { box-shadow: 0 0 3px 0px var(--ace-multiselect-shadow); } .ace_editor .ace_marker-layer .ace_step { background: var(--ace-step-highlight); } .ace_editor .ace_marker-layer .ace_active-line, .ace_editor .ace_gutter-active-line { background: var(--wiki-content-background-color--secondary); /* fallback */ background: color-mix(in srgb, var(--wiki-content-dynamic-color) 3.1%, transparent) } .ace-tm .ace_marker-layer .ace_selected-word { background: var(--wiki-content-background-color--secondary); /* fallback */ background: color-mix(in srgb, var(--wiki-content-dynamic-color) 5%, transparent); } .ace_editor .ace_marker-layer .ace_selection { background: var(--wiki-content-background-color--secondary); /* fallback */ background: color-mix(in srgb, var(--wiki-content-dynamic-color) 10%, transparent); } .ace_editor .ace_marker-layer .ace_selected-word { border: 1px solid var(--wiki-content-background-color--secondary); /* fallback */ border: 1px solid color-mix(in srgb, var(--wiki-content-dynamic-color) 20%, transparent); } .ace_editor .ace_invisible { color: var(--wiki-content-background-color--secondary); /* fallback */ color: color-mix(in srgb, var(--wiki-content-dynamic-color) 25%, transparent); } .ace_editor .ace_keyword, .ace_editor .ace_meta { color: var(--ace-keywords); } .ace_editor .ace_constant, .ace_editor .ace_constant.ace_numeric, .ace_editor .ace_constant.ace_character, .ace_editor .ace_constant.ace_character.ace_escape, .ace_editor .ace_constant.ace_other, .ace_editor .ace_heading, .ace_editor .ace_markup.ace_heading, .ace_editor .ace_support.ace_constant { color: var(--ace-constants); } .ace_editor .ace_invalid.ace_illegal { color: var(--ace-illegal); background-color: var(--ace-illegal-highlight); } .ace_editor .ace_invalid.ace_deprecated { text-decoration: underline; font-style: italic; color: var(--ace-deprecated); } .ace_editor .ace_support, .ace_editor .ace_support.ace_type { color: var(--ace-support); } .ace_editor .ace_fold { background-color: var(--wiki-content-dynamic-color--secondary--inverted); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 10%, transparent); border-color: var(--wiki-content-dynamic-color--secondary--inverted); /* fallback */ border-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 10%, transparent); } .ace_editor .ace_support.ace_function { color: var(--ace-function); } .ace_editor .ace_list, .ace_editor .ace_markup.ace_list, .ace_editor .ace_storage { color: var(--ace-list); } .ace_editor .ace_entity.ace_name.ace_function, .ace_editor .ace_meta.ace_tag, .ace_editor .ace_variable { color: var(--ace-variable); } .ace_editor .ace_string { color: var(--ace-string); } .ace_editor .ace_string.ace_regexp { color: var(--ace-regexp); } .ace_editor .ace_comment { font-style: italic; color:var(--wiki-content-dynamic-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-dynamic-color) 30%, transparent); } .ace_editor .ace_xml-pe { color:var(--wiki-content-dynamic-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-dynamic-color) 28%, transparent); } .ace_editor .ace_indent-guide { background:none; border-right:1px solid var(--wiki-content-dynamic-color); border-right:1px solid color-mix(in srgb, var(--wiki-content-dynamic-color) 20%, transparent); } .ace_search { background-color: var(--wiki-content-background-color--secondary); color: var(--wiki-content-text-color); border: 1px solid var(--wiki-content-border-color); } .ace_search_field { background-color: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-border-color); color: var(--wiki-content-text-mix-color); } .ace_button { color: var(--wiki-content-text-color); border: 1px solid var(--wiki-content-border-color); } .ace_button:hover { background-color: var(--wiki-accent-color--hover); color: var(--wiki-accent-label-color); } .ace_button.checked { background-color: var(--wiki-accent-color); color: var(--wiki-accent-label-color); } .ace_searchbtn { background-color: var(--wiki-accent-color); color: var(--wiki-accent-label-color); border: 1px solid var(--wiki-content-border-color); } .ace_searchbtn:hover { background-color: var(--wiki-accent-color--hover); color: var(--wiki-accent-label-color); } .ace_searchbtn.prev::after, .ace_searchbtn.next::after { border-color: var(--wiki-accent-label-color); } .ace_searchbtn_close { filter: var(--wiki-icon-general-filter); } .wikiEditor-ui .codeEditor-status { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); } .mw-editform #wpTextbox1 { background:var(--wiki-content-background-color); /* fallback */ background: color-mix(in srgb, var(--wiki-content-background-color) 50%, transparent); color: var(--wiki-content-text-color); } .view-dark .ext-codemirror-wrapper, .ext-codemirror-wrapper { --codemirror-yellow: #ffd700; --codemirror-light-blue: #adf; --codemirror-blue: #08f; --codemirror-green: #290; --codemirror-red: #f50; --codemirror-dark-red: #dd1616; --codemirror-purple: #CD4EF9; --codemirror-pink: #e0e; --codemirror-light-gray: #eee; --codemirror-gray: #84a0a0; } .view-light .ext-codemirror-wrapper { --codemirror-yellow: #9e8500; --codemirror-light-blue: #008ae7; --codemirror-blue: #0085f9; --codemirror-green: #290; --codemirror-red: #ef4f00; --codemirror-dark-red: #a11; --codemirror-purple: #80c; --codemirror-pink: #ed00ed; --codemirror-light-gray: #858585; --codemirror-gray: #6b8a8a; } .ext-codemirror-wrapper { background-color:var(--wiki-content-background-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-background-color) 35%, transparent); color: var(--wiki-content-text-color) } .cm-editor .cm-selectionBackground, .cm-editor.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground { background: var(--wiki-accent-color); /* fallback */ background: color-mix(in srgb, var(--wiki-accent-color) 30%, transparent); } .cm-mw-keyword { color: var(--codemirror-purple) } .cm-mw-def { color: var(--codemirror-blue) } .cm-mw-variable-2 { color: var(--codemirror-light-blue) } .cm-mw-string { color: var(--codemirror-red) } .cm-mw-atom { color: var(--codemirror-pink) } .cm-mw-number { color: var(--codemirror-green) } .cm-mw-matching { background-color: var(--codemirror-yellow) } .cm-mw-skipformatting { background-color: var(--codemirror-light-blue) } .cm-mw-list { color: var(--codemirror-blue) } .cm-mw-doubleUnderscore, .cm-mw-hr, .cm-mw-signature { background-color: var(--wiki-content-background-color--secondary); color: var(--codemirror-blue) } .cm-mw-indenting { color: var(--codemirror-blue) } .cm-mw-mnemonic { color: var(--codemirror-green) } .cm-mw-comment { color: var(--codemirror-gray) } .cm-mw-apostrophes-bold, .cm-mw-apostrophes-italic, .cm-mw-section-header { color: var(--codemirror-blue) } .cm-mw-template, .cm-mw-template-argument-name, .cm-mw-template-bracket, .cm-mw-template-delimiter, .cm-mw-template-name { color: var(--codemirror-purple); } .cm-mw-templatevariable, .cm-mw-templatevariable-bracket, .cm-mw-templatevariable-delimiter, .cm-mw-templatevariable-name { color: var(--codemirror-red) } .cm-mw-parserfunction-bracket, .cm-mw-parserfunction-delimiter, .cm-mw-parserfunction-name { color: var(--codemirror-dark-red) } .cm-mw-exttag-attribute, .cm-mw-exttag-bracket, .cm-mw-exttag-name, .cm-mw-htmltag-attribute, .cm-mw-htmltag-bracket, .cm-mw-htmltag-name { color: var(--codemirror-green) } .cm-mw-link, .cm-mw-link-pagename { color: var(--wiki-content-link-color) } .cm-mw-link-tosection { color: var(--codemirror-blue) } .cm-mw-extlink, .cm-mw-extlink-bracket, .cm-mw-extlink-protocol, .cm-mw-free-extlink, .cm-mw-free-extlink-protocol, .cm-mw-link-bracket, .cm-mw-link-delimiter { color: var(--wiki-content-link-color) } .cm-mw-table-bracket, .cm-mw-table-definition, .cm-mw-table-delimiter { color: var(--codemirror-pink) } .cm-mw-matchingbracket { background-color: var(--wiki-content-background-color--secondary); box-shadow: inset 0 0 1px 1px var(--wiki-content-link-color); font-weight: bold; } .cm-editor .cm-tooltip-autocomplete ul li[aria-selected] { background: var(--wiki-content-background-color--secondary); /* fallback */ background: color-mix(in srgb, var(--wiki-content-link-color) 15%, var(--wiki-content-background-color)); color: var(--wiki-content-link-color); } /* VisualEditor: Fix broken toolbar layout */ .oo-ui-toolbar { clear: none; } .ve-init-mw-desktopArticleTarget-toolbar-open > .oo-ui-toolbar-bar > div:nth-child(4) { display: none; } .ve-ui-toolbar-floating > .oo-ui-toolbar-bar { top: var( --wikigg-header-height ); } .oo-ui-toolbar-bar .oo-ui-toolbar-bar, .ve-area-wrapper .oo-ui-toolbar-bar { background-color: var(--wiki-content-background-color--secondary); } .ve-init-mw-desktopArticleTarget-originalContent .content-body { clear: right; } /* fix a lot of empty space from TemplateData when using VE Source */ .tdg-editscreen-main.mw-body-content::after { display:none; } /************* * End editor * **************/ /**************** * Tabber styles * *****************/ .tabber__header { box-shadow: inset 0 -1px 0 0 var(--wiki-content-border-color); } .tabber__tab, .tabber__tab:visited { color:var(--wiki-content-text-color); } .tabber__tab:hover, .tabber__tab:hover:visited, .tabber__tab[aria-selected="true"], .tabber__tab[aria-selected="true"]:visited { color: var(--wiki-content-link-color); } .tabber__tab[aria-selected="true"] { box-shadow: 0 -2px 0 var(--wiki-content-link-color) inset; } .tabber__header__prev::after, .tabber__header__next::after { filter: var(--wiki-icon-general-filter); } /******************** * End Tabber styles * *********************/ /*************************************** * Various fixes for multi-theme Vector * ****************************************/ :focus, :focus-visible { outline-color:var(--wiki-accent-color) } :focus-visible { outline-style:solid; } .oo-ui-iconElement-icon { filter: var(--wiki-icon-to-link-filter); } .oo-ui-iconElement-icon.oo-ui-icon-reload { filter: brightness(0) var(--wiki-icon-to-link-filter); } fieldset { border-color:var(--wiki-content-border-color); } hr { background-color:var(--wiki-content-border-color); } .CategoryTreeToggle { color:var(--wiki-content-link-color); } input, select { background-color: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-border-color); color: var(--wiki-content-text-color); } input:hover, input:focus, input:active { background-color: var(--wiki-content-background-color--secondary); color: var(--wiki-content-text-color); border-color: var(--wiki-accent-color); box-shadow: none; } input:focus-visible { outline: 1px solid var(--wiki-accent-color); } input::file-selector-button, input[type="button"], input[type="submit"] { background-color:var(--wiki-accent-color); border-color: var(--wiki-accent-color); color: var(--wiki-accent-label-color); } .vector-body blockquote { border-color:var(--wiki-content-border-color); } /* category bar and filetoc */ .catlinks, ul#filetoc { background: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-border-color); } /**/ body .ui-dialog .ui-widget-header { /* we need an important here because the built-in styles have one :( */ background: var(--wiki-content-background-color) !important; border: 1px solid var(--wiki-content-border-color); color: var(--wiki-content-text-color); } .ui-widget-header .ui-dialog-titlebar-close .ui-icon-closethick { filter: var(--wiki-icon-general-filter); } .ui-widget-header .ui-dialog-titlebar-close.ui-state-hover { background: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-border-color); } .ui-widget-content { background: var(--wiki-content-background-color--secondary); color: var(--wiki-content-text-color); border: 1px solid var(--wiki-content-border-color); } body .ui-button { /* we need an important here because the built-in styles have one. Vector is a mess */ background: var(--wiki-accent-color) !important; border-color: var(--wiki-accent-color) !important; color: var(--wiki-accent-label-color); } body .ui-button:hover, body .ui-button:focus, body .ui-button:active { /* we need an important here because we had to use some above */ background: var(--wiki-accent-color--hover) !important; border-color: var(--wiki-accent-color--hover) !important; color: var(--wiki-accent-label-color); } .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { color: var(--wiki-accent-label-color); } #contentSub, #contentSub2 { color:var(--wiki-content-text-mix-color); } /* notifications ("your edit was saved", etc.) */ .mw-notification { background-color: var(--wiki-content-background-color--secondary); color: var(--wiki-content-text-color); border-color: var(--wiki-content-border-color); } .mw-notification .oo-ui-labelElement-label { color:var(--wiki-content-text-color); } .mw-notification .oo-ui-iconElement-icon { filter:unset; } /**/ .mime-type.has-warning { color:var(--wiki-content-text-color); } .oo-ui-image-warning.oo-ui-icon-alert, .mw-ui-icon-alert-warning::before { filter:drop-shadow(0 0 3px #000); } .oo-ui-image-invert.oo-ui-icon-subtract, .mw-ui-icon-subtract-invert::before, .oo-ui-image-invert.oo-ui-icon-add, .mw-ui-icon-add-invert::before { filter:brightness(0) var(--wiki-icon-to-link-filter); filter:var(--wiki-icon-general-filter); } .mw_metadata td, .mw_metadata th { border-color: var(--wiki-content-border-color); } .mw_metadata th { background-color: var(--wiki-content-background-color--secondary); } .mw_metadata td { background-color: var(--wiki-content-background-color); } .mw-datatable td, .mw-datatable th { background-color: var(--wiki-content-background-color); border-color: var(--wiki-content-border-color); } #mw-allmessagestable tbody:hover td, .mw-datatable tr:hover>td { background-color: var(--wiki-content-background-color--secondary); } #mw-allmessagestable .am_default { background-color: var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 80%, transparent); color: var(--wiki-accent-label-color); } #mw-allmessagestable .am_actual, #mw-allmessagestable tbody:hover .am_default { background-color: var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 60%, transparent); } #mw-allmessagestable .am_actual { color: var(--wiki-accent-label-color); } #mw-allmessagestable tbody:hover .am_actual { background-color: var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); } .mw-datatable, .mw-json { background-color: var(--wiki-content-background-color); border-color: var(--wiki-content-border-color); color: inherit; } .mw-datatable>*>tr>th, .mw-datatable>tr>th, .mw-json>*>tr>th, .mw-json>tr>th { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); padding-bottom: 9px; padding-top: 9px; } .mw-datatable>*>tr>td, .mw-datatable>tr>td, .mw-json>*>tr>td, .mw-json>tr>td { border-color: var(--wiki-content-border-color); } .mw-json tr { background-color: inherit; } .mw-json .mw-json-single-value, .mw-json .mw-json-value, .mw-json .value { background: var(--wiki-success-color); /* fallback */ background: color-mix(in srgb, var(--wiki-success-color) 60%, transparent); } .mw-json .mw-json-empty { background: var(--wiki-content-background-color--secondary); } .mw-message-box, .mw-message-box-warning { background-color: var(--wiki-content-background-color--secondary); color: var(--wiki-content-text-color); } .mw-message-box-warning { border-color: var(--wiki-warning-color); border-width: 1px 1px 1px 10px; } .mw-destfile-warning { border-color: var(--wiki-warning-color); color: var(--wiki-content-text-color); background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-warning-color) 25%, transparent); } .wikitable *, .wikitable :after, .wikitable :before { -webkit-box-sizing: inherit; box-sizing: inherit; } .cargo-pagevalues-tableinfo { background-color: var(--wiki-content-background-color); border-bottom: 1px solid var(--wiki-content-border-color); top: 46px; position: static; /* override sticky in the built-in */ } .cargo-table-diagram .cargo-table-svg .node.entity-name rect { fill: var(--wiki-content-background-color--secondary); fill-opacity: 1; } .cargo-table-diagram .cargo-table-svg .node rect { stroke: var(--wiki-content-border-color); opacity: 1; } .cargo-table-diagram .cargo-table-svg .node text tspan { fill: var(--wiki-content-text-color); } table.cargoTable { color: var(--wiki-content-text-color); } table.cargoTable tbody td, table.cargoTable thead th { border: 1px solid var(--wiki-content-border-color); } table.cargoTable tr:hover { background-color: var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 25%, transparent); } table.cargoTable thead tr:nth-child(odd), table.cargoTable.noMerge thead tr:nth-child(odd) { background-color: var(--wiki-accent-color); } table.cargoTable tbody tr:nth-child(2n), table.cargoTable.noMerge tbody tr:nth-child(2n) { background-color: var(--wiki-content-background-color); } table.cargoTable tbody tr:nth-child(odd), table.cargoTable.noMerge tbody tr:nth-child(odd) { background-color: var(--wiki-content-background-color--secondary); } table.cargoTable th.headerSort { color:var(--wiki-accent-label-color); } table.cargoTable th.headerSort:hover { color:var(--wiki-accent-label-color); text-decoration:underline; } table.cargoTable th.headerSort::after { background-color:var(--wiki-accent-link-color); } #mw-content-text div.cargoReplacementTableInfo { background: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-border-color); }.dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter, .dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_processing, .dataTables_wrapper .dataTables_paginate { color:var(--wiki-content-text-color); } table.dataTable tbody tr { background-color:var(--wiki-content-background-color); } table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 { background-color:var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-background-color--secondary) 75%, transparent); } table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd, table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 { background-color:var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-background-color--secondary) 50%, transparent); } table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 { background-color:var(--wiki-content-background-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-background-color) 75%, transparent); } table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover { background-color: var(--wiki-content-background-color--secondary); } .dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active { /* we need this !important to override a built-in one */ color: var(--wiki-content-text-mix-color) !important; } table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td { border-top: 1px solid var(--wiki-content-border-color); } .dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { /* we need this !important to override a built-in one */ color: var(--wiki-content-mix-color) !important; border: 1px solid var(--wiki-content-border-color); background-color: var(--wiki-content-background-color); background: linear-gradient(to bottom,var(--wiki-content-background-color) 0%,var(--wiki-content-background-color--secondary) 100%); } div.drilldown-filters-wrapper { background-color: transparent; border: 1px solid var(--wiki-content-border-color); color: var(--wiki-content-text-color); } .action-pagevalues tr:nth-of-type(2n) { background-color:var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-background-color--secondary) 50%, transparent); } .action-pagevalues tr:hover { background-image: linear-gradient(var(--wiki-accent-color), var(--wiki-accent-color)); /* fallback */ background-image: linear-gradient(color-mix(in srgb, var(--wiki-accent-color) 20%, transparent), color-mix(in srgb, var(--wiki-accent-color) 20%, transparent)); } div.specialCargoQuery-extraPane { background: var(--wiki-content-background-color); } .oo-ui-panelLayout-framed { border-color:var(--wiki-content-border-color); } .oo-ui-buttonElement-framed.oo-ui-widget-enabled>.oo-ui-buttonElement-button { background-color: transparent; } .oo-ui-inputWidget-input + .oo-ui-image-invert.oo-ui-icon-check { background-image:none; } .oo-ui-inputWidget-input:checked + .oo-ui-image-invert.oo-ui-icon-check::before { position:absolute; width:100%; height:100%; top:0; left:0; background-image: url(/load.php?modules=oojs-ui-core.icons&image=check&variant=invert&format=rasterized&skin=vector&version=y9f1k); background-image: linear-gradient(transparent,transparent),url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3E check %3C/title%3E%3Cg fill=%22%23fff%22%3E%3Cpath d=%22M7 14.2 2.8 10l-1.4 1.4L7 17 19 5l-1.4-1.4z%22/%3E%3C/g%3E%3C/svg%3E"); content:''; pointer-events: none; filter:var(--wiki-icon-general-filter); } .oo-ui-checkboxInputWidget [type="checkbox"] + span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked + span { filter: unset; background-color: transparent; /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 5%, transparent); border-color: var(--wiki-accent-color); /* fallback */ border-color: color-mix(in srgb, var(--wiki-accent-color) 75%, transparent); } .oo-ui-checkboxInputWidget [type="checkbox"]:disabled + span { background-color: var(--wiki-content-text-mix-color); border-color: var(--wiki-content-text-mix-color); } .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked+span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate+span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:hover+span { border-color: var(--wiki-accent-color); filter: unset; } .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked+span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate+span { background-color: var(--wiki-accent-color); } .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked:focus+span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate:focus+span { box-shadow: none; } .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:active+span { border-color: var(--wiki-accent-color); box-shadow: inset 0 0 0 1px var(--wiki-accent-color); } .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:focus+span { border-color: var(--wiki-accent-color); box-shadow: inset 0 0 0 1px var(--wiki-accent-color); outline: 1px solid transparent; } .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked+span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate+span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked:focus+span { background-color: var(--wiki-accent-color); border-color: var(--wiki-accent-color); } .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:hover+span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:active+span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:focus+span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked:hover+span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked:active+span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:checked:focus+span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate:hover+span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate:active+span, .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:indeterminate:focus+span { background-color:var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); border-color: var(--wiki-accent-color); } .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type="checkbox"]:active + span { background-color:var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent) } .oo-ui-image-invert.oo-ui-icon-check { background:none; position:relative; } .oo-ui-inputWidget-input:checked + .oo-ui-image-invert.oo-ui-icon-check::before { position:absolute; width:100%; height:100%; top:0; left:0; background-image: url(/load.php?modules=oojs-ui-core.icons&image=check&variant=invert&format=rasterized&skin=vector&version=y9f1k); background-image: linear-gradient(transparent,transparent),url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3E check %3C/title%3E%3Cg fill=%22%23fff%22%3E%3Cpath d=%22M7 14.2 2.8 10l-1.4 1.4L7 17 19 5l-1.4-1.4z%22/%3E%3C/g%3E%3C/svg%3E"); content:''; pointer-events: none; filter:var(--wiki-icon-general-filter); } .oo-ui-indicatorElement-indicator { filter: var(--wiki-icon-to-link-filter); } .oo-ui-tagItemWidget.oo-ui-widget-enabled:not(.oo-ui-tagItemWidget-fixed) { background-color: var(--wiki-content-background-color--secondary); } .oo-ui-tagItemWidget.oo-ui-widget-enabled:hover { color: var(--wiki-content-text-color--hover); } .oo-ui-tagItemWidget.oo-ui-widget-enabled:focus { border-color: var(--wiki-accent-color); box-shadow: inset 0 0 0 1px var(--wiki-accent-color); } .oo-ui-tagItemWidget.oo-ui-widget-disabled { background-color: var(--wiki-content-background-color--secondary); color: var(--wiki-content-text-mix-color); border-color: var(--wiki-content-text-mix-color); } .client-js .mw-recentchanges-toplinks:not(.mw-recentchanges-toplinks-collapsed) { border-color: var(--wiki-content-border-color); } .mw-rcfilters-ui-savedLinksListWidget-placeholder.oo-ui-optionWidget .oo-ui-labelElement-label { color: var(--wiki-content-text-color); } .mw-rcfilters-ui-savedLinksListWidget-menu .mw-rcfilters-ui-savedLinksListItemWidget { color: var(--wiki-content-text-color); padding: 8px 6px; -webkit-transition: color .3s, background-color .3s; transition: color .3s, background-color .3s; } .mw-rcfilters-ui-savedLinksListWidget-menu .mw-rcfilters-ui-savedLinksListItemWidget:hover { background-color: var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent); color: var(--wiki-accent-color); } .mw-rcfilters-ui-savedLinksListItemWidget-label { color: var(--wiki-accent-color); } .mw-rcfilters-ui-filterTagMultiselectWidget.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined { background-color: transparent; } .mw-rcfilters-ui-filterTagMultiselectWidget.oo-ui-widget-enabled .oo-ui-tagMultiselectWidget-handle { border-color: var(--wiki-content-border-color); } .mw-rcfilters-ui-filterTagMultiselectWidget.oo-ui-widget-enabled .oo-ui-tagMultiselectWidget-handle+.mw-rcfilters-ui-table, .mw-rcfilters-ui-filterTagMultiselectWidget.oo-ui-widget-enabled .oo-ui-tagMultiselectWidget-handle.mw-rcfilters-ui-filterTagMultiselectWidget-emphasize { background-color: var(--wiki-content-background-color--secondary); } .mw-rcfilters-ui-filterTagMultiselectWidget-views-select-widget.oo-ui-widget { border-color: var(--wiki-content-border-color); padding: 0; } .mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-content-title { color: var(--wiki-content-text-color); } .mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-content-savedQueryTitle { color: var(--wiki-content-text-color); } .mw-rcfilters-ui-filterTagMultiselectWidget-hideshowButton .oo-ui-buttonElement-button>.oo-ui-labelElement-label { color: var(--wiki-content-link-color); } .mw-rcfilters-ui-filterTagMultiselectWidget-hideshowButton .oo-ui-buttonElement-button>.oo-ui-labelElement-label:hover { color: var(--wiki-content-link-color--hover); } .mw-rcfilters-ui-filterTagMultiselectWidget-hideshowButton .oo-ui-buttonElement-button:before { content: "["; } .mw-rcfilters-ui-filterTagMultiselectWidget-hideshowButton .oo-ui-buttonElement-button:after { content: "]"; } .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive>.oo-ui-buttonElement-button { color: var(--wiki-content-text-color); } .oo-ui-tagItemWidget.oo-ui-widget-enabled .oo-ui-buttonElement-button:hover { background-color: var(--wiki-content-dynamic-color--inverted); } .mw-rcfilters-ui-filterTagMultiselectWidget-emptyFilters { color: var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 60%, transparent); } .mw-rcfilters-ui-filterMenuSectionOptionWidget { background-color: var(--wiki-content-background-color); } .oo-ui-menuSelectWidget { background-color: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-text-mix-color); } .mw-rcfilters-ui-filterMenuSectionOptionWidget-header-title.oo-ui-labelElement-label { color: var(--wiki-content-text-color); } .mw-rcfilters-ui-filterMenuHeaderWidget-header { background-color: var(--wiki-content-background-color); border-bottom-color: var(--wiki-content-border-color); } .mw-rcfilters-ui-filterMenuHeaderWidget-title { color: var(--wiki-content-text-color); } .mw-rcfilters-ui-itemMenuOptionWidget:not(:last-child):not(.mw-rcfilters-ui-itemMenuOptionWidget-identifier-talk) { border-bottom-color: var(--wiki-content-text-mix-color); } .mw-rcfilters-ui-itemMenuOptionWidget-view-namespaces { border-top-color: var(--wiki-content-border-color); } .mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-optionWidget-selected, .mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-optionWidget-selected .mw-rcfilters-ui-itemMenuOptionWidget-label-title, .mw-rcfilters-ui-itemMenuOptionWidget:hover, .mw-rcfilters-ui-itemMenuOptionWidget:hover .mw-rcfilters-ui-itemMenuOptionWidget-label-title { color: var(--wiki-content-text-color); } .mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-optionWidget-selected .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type=checkbox]+span, .mw-rcfilters-ui-itemMenuOptionWidget:hover .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type=checkbox]+span { border-color: var(--wiki-accent-color); } .mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-optionWidget-selected, .mw-rcfilters-ui-itemMenuOptionWidget:hover { background-color: var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent) } .mw-rcfilters-ui-itemMenuOptionWidget-excludeLabel, .mw-rcfilters-ui-itemMenuOptionWidget-label-title { color: var(--wiki-content-text-color); } .mw-rcfilters-ui-itemMenuOptionWidget-label-desc { color: var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 60%, transparent); } .mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted.oo-ui-optionWidget-selected:hover, .mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted:not(.oo-ui-optionWidget-selected):hover { background-color: var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent); } .mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted.oo-ui-optionWidget-selected .mw-rcfilters-ui-itemMenuOptionWidget-label-title, .mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted:not(.oo-ui-optionWidget-selected) .mw-rcfilters-ui-itemMenuOptionWidget-label-title { color: var(--wiki-content-text-color); } .mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted.oo-ui-optionWidget-selected .mw-rcfilters-ui-itemMenuOptionWidget-label-desc { color: var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 60%, transparent); } .mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-optionWidget-selected .mw-rcfilters-ui-itemMenuOptionWidget-label-desc, .mw-rcfilters-ui-itemMenuOptionWidget:hover .mw-rcfilters-ui-itemMenuOptionWidget-label-desc, .mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted:not(.oo-ui-optionWidget-selected) .mw-rcfilters-ui-itemMenuOptionWidget-label-desc { color: var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 80%, transparent); } .mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted.oo-ui-optionWidget-selected .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type=checkbox]+span, .mw-rcfilters-ui-itemMenuOptionWidget.oo-ui-flaggedElement-muted:not(.oo-ui-optionWidget-selected) .oo-ui-checkboxInputWidget.oo-ui-widget-enabled [type=checkbox]+span { border-color: var(--wiki-content-text-color); } .mw-rcfilters-ui-viewSwitchWidget label.oo-ui-labelWidget { color: var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 60%, transparent); } .oo-ui-tagItemWidget.oo-ui-widget-enabled, .oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined .oo-ui-tagItemWidget.oo-ui-widget-enabled { background-color: transparent; color: var(--wiki-content-text-color); border-color:var(--wiki-accent-color); /* fallback */ border-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); } .oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined .oo-ui-tagItemWidget.oo-ui-widget-enabled.selected { background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 10%, transparent); border-color: var(--wiki-accent-color); } .mw-rcfilters-ui-datePopupWidget { border-color: var(--wiki-content-border-color); } .mw-rcfilters-ui-datePopupWidget .mw-rcfilters-ui-valuePickerWidget-title { color:var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 80%, transparent); } .mw-changeslist-legend, .mw-rcfilters-ui-changesListWrapperWidget .mw-changeslist-legend { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); } @keyframes fadeBlue { 60% { border-top-color:var(--wiki-accent-color); } 100% { border-top-color:var(--wiki-content-border-color); } } .mw-rcfilters-ui-changesListWrapperWidget-previousChangesIndicator { border-top-color: var(--wiki-content-border-color); } .mw-rcfilters-ui-menuSelectWidget-footer { background-color: var(--wiki-content-text-mix-color-95); } .mw-rcfilters-ui-filterMenuOptionWidget.oo-ui-flaggedElement-muted:not(.oo-ui-optionWidget-selected) { background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-text-color) 10%, transparent); } .oo-ui-iconElement-icon.mw-rcfilters-ui-filterItemHighlightButton-circle { filter:unset; } .oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined .mw-rcfilters-ui-tagItemWidget-selected.oo-ui-tagItemWidget.oo-ui-widget-enabled { background-color:var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent); border-color:var(--wiki-accent-color); } .mw-rcfilters-ui-tagItemWidget.oo-ui-flaggedElement-muted.oo-ui-tagItemWidget.oo-ui-widget-enabled .oo-ui-labelElement-label { color: var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 76%, transparent); } .mw-rcfilters-ui-tagItemWidget-popup-content { color: var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 75%, transparent); } /* fix for weird focus box on recentchanges arrows when clicking, but keep it for tab navigation */ .mw-enhancedchanges-checkbox:focus + * .mw-enhancedchanges-arrow { outline:none; } .mw-enhancedchanges-checkbox:focus-visible + * .mw-enhancedchanges-arrow { outline:1px solid var(--wiki-accent-color); } /**/ .oo-ui-popupWidget-anchored-bottom .oo-ui-popupWidget-anchor:before { border-top-color: var(--wiki-content-border-color); } .oo-ui-popupWidget-anchored-bottom .oo-ui-popupWidget-anchor:after { border-top-color: var(--wiki-content-background-color--secondary); } .unpatrolled { color: var(--wiki-alert-color); } .autocomment, .autocomment a, .autocomment a:visited { color: var(--wiki-content-text-mix-color); } /* Recent changes filter highlighting */ .view-dark .mw-rcfilters-ui-changesListWrapperWidget li.mw-rcfilters-highlight-color-c1, .view-dark .mw-rcfilters-ui-changesListWrapperWidget .mw-rcfilters-highlight-color-c1 tr:first-child, .view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c1.mw-rcfilters-ui-highlights-enhanced-toplevel:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+2)), .view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c1.mw-rcfilters-ui-highlights-enhanced-nested:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+4)) { background-color: #1c283f; } .view-dark .mw-rcfilters-ui-changesListWrapperWidget li.mw-rcfilters-highlight-color-c2, .view-dark .mw-rcfilters-ui-changesListWrapperWidget .mw-rcfilters-highlight-color-c2 tr:first-child, .view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c2.mw-rcfilters-ui-highlights-enhanced-toplevel:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+2)), .view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c2.mw-rcfilters-ui-highlights-enhanced-nested:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+4)) { background-color: #0f3128; } .view-dark .mw-rcfilters-ui-changesListWrapperWidget li.mw-rcfilters-highlight-color-c3, .view-dark .mw-rcfilters-ui-changesListWrapperWidget .mw-rcfilters-highlight-color-c3 tr:first-child, .view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c3.mw-rcfilters-ui-highlights-enhanced-toplevel:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+2)), .view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c3.mw-rcfilters-ui-highlights-enhanced-nested:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+4)) { background-color: #352c10; } .view-dark .mw-rcfilters-ui-changesListWrapperWidget li.mw-rcfilters-highlight-color-c4, .view-dark .mw-rcfilters-ui-changesListWrapperWidget .mw-rcfilters-highlight-color-c4 tr:first-child, .view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c4.mw-rcfilters-ui-highlights-enhanced-toplevel:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+2)), .view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c4.mw-rcfilters-ui-highlights-enhanced-nested:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+4)) { background-color: #411d0c; } .view-dark .mw-rcfilters-ui-changesListWrapperWidget li.mw-rcfilters-highlight-color-c5, .view-dark .mw-rcfilters-ui-changesListWrapperWidget .mw-rcfilters-highlight-color-c5 tr:first-child, .view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c5.mw-rcfilters-ui-highlights-enhanced-toplevel:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+2)), .view-dark .mw-rcfilters-ui-changesListWrapperWidget tr.mw-rcfilters-highlight-color-c5.mw-rcfilters-ui-highlights-enhanced-nested:not(.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey) td:not(:nth-child(-n+4)) { background-color: #3f0f0f; } .oo-ui-tagMultiselectWidget.oo-ui-widget-enabled, .oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined { background-color: transparent; } .oo-ui-tagMultiselectWidget.oo-ui-widget-enabled .oo-ui-tagMultiselectWidget-handle { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); color: var(--wiki-content-text-color); -webkit-transition: border-color 300ms, box-shadow 300ms; transition: border-color 300ms, box-shadow 300ms; background-color: var(--wiki-content-background-color--secondary) } .oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-inlined.oo-ui-tagMultiselectWidget-focus .oo-ui-tagMultiselectWidget-handle { box-shadow: inset 0 0 0 1px var(--wiki-accent-color); border-color: var(--wiki-accent-color); outline: 0 } .oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-inlined:hover .oo-ui-tagMultiselectWidget-handle { border-color: var(--wiki-accent-color) } .oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-inlined.oo-ui-flaggedElement-invalid .oo-ui-tagMultiselectWidget-handle, .oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-inlined.oo-ui-flaggedElement-invalid:hover .oo-ui-tagMultiselectWidget-handle { border-color: var(--wiki-alert-color) } .oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined .oo-ui-tagMultiselectWidget-handle { background-color: var(--wiki-content-background-color--secondary); border-bottom-width: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0 } .oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined .oo-ui-inputWidget-input { border-radius: 0; } .oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined.oo-ui-flaggedElement-invalid .oo-ui-inputWidget-input { border-color: var(--wiki-alert-color); } .oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid .oo-ui-inputWidget-input { color: var(--wiki-alert-color); } .oo-ui-tagMultiselectWidget.oo-ui-widget-disabled .oo-ui-tagMultiselectWidget-handle { opacity: 0.5; } .oo-ui-tagMultiselectWidget-handle .oo-ui-tagMultiselectWidget-group > input { color:var(--wiki-content-text-color); } .oo-ui-tagMultiselectWidget .oo-ui-inputWidget-input { color: inherit; background: transparent; font-family: inherit; } .oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle, .oo-ui-textInputWidget.oo-ui-widget-disabled .oo-ui-inputWidget-input, .oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle { background: var(--wiki-content-text-mix-color-95); color:var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 25%, transparent); text-shadow:none; border-color:var(--wiki-content-text-mix-color); } .oo-ui-textInputWidget.oo-ui-widget-enabled .oo-ui-inputWidget-input::placeholder { color:var(--wiki-content-text-mix-color); } .oo-ui-dropdownInputWidget select { border-color:var(--wiki-content-border-color); } .oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:focus { border-color:var(--wiki-accent-color); box-shadow:inset 0 0 0 1px var(--wiki-accent-color); } .oo-ui-toggleSwitchWidget { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover { background-color: var(--wiki-content-text-mix-color-95); background-color: color-mix(in srgb, var(--wiki-content-background-color--secondary) 95%, var(--wiki-content-dynamic-color)); border-color: var(--wiki-content-border-color); border-color: color-mix(in srgb, var(--wiki-content-border-color) 95%, var(--wiki-content-dynamic-color)); } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled .oo-ui-toggleSwitchWidget-grip { background-color:var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); border-color: #0006; } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover .oo-ui-toggleSwitchWidget-grip { background-color: var(--wiki-accent-color); background-color: color-mix(in srgb, var(--wiki-accent-color) 90%, var(--wiki-content-dynamic-color)); border-color: #0006; } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip { background-color: var(--wiki-accent-label-color); border-color: #0006; } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:focus .oo-ui-toggleSwitchWidget-grip { border-color: var(--wiki-accent-color); } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on { background-color: var(--wiki-accent-color); border-color: var(--wiki-accent-color); } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on:hover { background-color: var(--wiki-accent-color--hover); border-color: var(--wiki-accent-color--hover); } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active, .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active:hover, .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active:focus { background-color: var(--wiki-accent-color--hover); border-color: var(--wiki-accent-color--hover); box-shadow: inset 0 0 0 1px var(--wiki-accent-color--hover); } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active .oo-ui-toggleSwitchWidget-grip, .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active:hover .oo-ui-toggleSwitchWidget-grip, .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:active:focus .oo-ui-toggleSwitchWidget-grip { background-color: var(--wiki-accent-label-color); border-color: var(--wiki-accent-label-color); } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:focus { border-color: var(--wiki-accent-color); box-shadow: inset 0 0 0 1px var(--wiki-accent-color); } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on:active, .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on:active:hover { background-color: var(--wiki-accent-color--hover); border-color: var(--wiki-accent-color--hover); } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on:focus { border-color: var(--wiki-accent-color); } .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on:focus::before { border-color: var(--wiki-accent-label-color); } .oo-ui-toggleSwitchWidget.oo-ui-widget-disabled { background-color: var(--wiki-content-text-mix-color-95); border-color: var(--wiki-content-text-mix-color-95); } .oo-ui-toggleSwitchWidget.oo-ui-widget-disabled.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip { border-color: var(--wiki-content-dynamic-color--inverted); box-shadow: inset 0 0 0 1px var(--wiki-content-dynamic-color--inverted); } .oo-ui-outlineOptionWidget.oo-ui-optionWidget-selected, .oo-ui-outlineOptionWidget.oo-ui-optionWidget-highlighted { background-color: var(--wiki-content-background-color--secondary); color: var(--wiki-content-link-color); } .oo-ui-labelWidget.oo-ui-inline-help { color:var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 80%, transparent); } .oo-ui-progressBarWidget:not(.oo-ui-pendingElement-pending){ background-color: var(--wiki-content-background-color); border-color: var(--wiki-accent-color); box-shadow:0 1px 1px var(--wiki-content-dynamic-color); /* fallback */ box-shadow: 0 1px 1px color-mix(in srgb, var(--wiki-content-dynamic-color) 15%, transparent); } .oo-ui-progressBarWidget.oo-ui-widget-enabled .oo-ui-progressBarWidget-bar { background-color:var(--wiki-accent-color); } .oo-ui-bookletLayout-outlinePanel { padding: 7px 0; } .oo-ui-processDialog-content .oo-ui-window-head, .oo-ui-processDialog-content .oo-ui-window-foot, .oo-ui-messageDialog-content > .oo-ui-window-head, .oo-ui-messageDialog-content > .oo-ui-window-foot { outline-color: var(--wiki-content-border-color); } .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget { border-right-color: var(--wiki-content-border-color); } .oo-ui-processDialog-actions-safe .oo-ui-widget-enabled.oo-ui-iconElement:not(.oo-ui-labelElement) > .oo-ui-buttonElement-button:hover { background-color: var(--wiki-content-background-color); border-right-color: var(--wiki-content-border-color); } .oo-ui-messageDialog-title { color: var(--wiki-heading-color); } /* OAuth authorisation dialog */ #mw-mwoauth-authorize-form { color: inherit; } .oo-ui-toolbar-bar, .oo-ui-popupToolGroup-tools, .oo-ui-listToolGroup-tools .oo-ui-tool.oo-ui-widget-enabled:hover { background-color:var(--wiki-content-background-color--secondary); color:var(--wiki-content-text-color); } .oo-ui-popupToolGroup-tools { max-width:100%; } .oo-ui-toolbar-actions .oo-ui-popupToolGroup.oo-ui-widget-enabled > .oo-ui-popupToolGroup-handle:hover { border-right-color:var(--wiki-content-border-color); } .oo-ui-menuToolGroup-tools .oo-ui-tool.oo-ui-tool-active, .oo-ui-tool.oo-ui-widget-enabled > .oo-ui-tool-link:active, .oo-ui-tool.oo-ui-widget-enabled.oo-ui-tool-active > .oo-ui-tool-link, .oo-ui-tool.oo-ui-widget-enabled.oo-ui-popupToolGroup-active > .oo-ui-tool-link, .oo-ui-popupToolGroup.oo-ui-popupToolGroup-active > .oo-ui-popupToolGroup-handle { background-color: var(--wiki-content-background-color); color: var(--wiki-content-link-color); } .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link { /* we remove the transition here because it causes the hard-coded color to flash briefly */ transition:none; } .oo-ui-popupToolGroup.oo-ui-popupToolGroup-active > .oo-ui-popupToolGroup-handle:hover { color:var(--wiki-accent-color); } .oo-ui-popupToolGroup-tools .oo-ui-tool-active.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title { color:var(--wiki-accent-color); } .oo-ui-popupToolGroup.oo-ui-widget-enabled > .oo-ui-popupToolGroup-handle:hover, .oo-ui-tool.oo-ui-widget-enabled > .oo-ui-tool-link:hover { background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 10%, transparent); } .oo-ui-popupToolGroup.oo-ui-widget-enabled > .oo-ui-popupToolGroup-handle:active { background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent); } .oo-ui-popupToolGroup-tools .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link:focus { box-shadow:inset 0 0 0 2px var(--wiki-accent-color); } .oo-ui-popupToolGroup.oo-ui-widget-enabled > .oo-ui-popupToolGroup-handle:focus, .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link:focus, .oo-ui-tool.oo-ui-widget-enabled > .oo-ui-tool-link:focus { outline:1px solid var(--wiki-accent-color); box-shadow:inset 0 0 0 1px var(--wiki-accent-color); } .oo-ui-menuToolGroup, .oo-ui-popupToolGroup-tools { border-color:var(--wiki-content-border-color); } .oo-ui-toolbar-position-top > .oo-ui-toolbar-bar { border-color: var(--wiki-content-border-color); box-shadow:0 1px 1px 0 var(--wiki-content-dynamic-color--secondary--inverted); /* fallback */ box-shadow: 0 1px 1px 0 color-mix(in srgb, var(--wiki-content-dynamic-color) 10%, transparent); } .oo-ui-barToolGroup-tools.oo-ui-toolGroup-enabled-tools .oo-ui-tool.oo-ui-widget-disabled.oo-ui-flaggedElement-primary > .oo-ui-tool-link, .oo-ui-barToolGroup-tools.oo-ui-toolGroup-disabled-tools .oo-ui-tool.oo-ui-flaggedElement-primary > .oo-ui-tool-link { background-color: var(--wiki-content-text-mix-color); border-color: var(--wiki-content-text-mix-color); } .oo-ui-tool.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-tool-link { background-color:var(--wiki-accent-color); color:var(--wiki-accent-label-color); } .oo-ui-tool.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-tool-link:hover { background-color:var(--wiki-accent-color--hover); color: var(--wiki-accent-label-color); } .oo-ui-buttonElement-frameless>.oo-ui-buttonElement-button, .oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button { color: var(--wiki-content-text-color); } .oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover, .oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active, .oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus { color: var(--wiki-content-text-color--hover); } .oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus { border-color: var(--wiki-accent-color); box-shadow: inset 0 0 0 1px var(--wiki-accent-color); } .oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button { color: var(--wiki-content-text-color); } .oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover, .oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active, .oo-ui-buttonElement-frameless.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus { color: var(--wiki-content-text-color--hover); } .oo-ui-buttonElement-frameless.oo-ui-flaggedElement-destructive>.oo-ui-buttonElement-button, .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button{ color: var(--wiki-alert-color); } .oo-ui-buttonElement-frameless.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled>.oo-ui-buttonElement-button:hover, .oo-ui-buttonElement-frameless.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled>.oo-ui-buttonElement-button:active, .oo-ui-buttonElement-frameless.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled>.oo-ui-buttonElement-button:focus { color: var(--wiki-alert-color--hover); } .oo-ui-buttonElement-frameless>.oo-ui-buttonElement-button { border: 1px solid transparent; } .oo-ui-buttonElement-frameless>button.oo-ui-buttonElement-button { color: inherit; } .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button { background-color: var(--wiki-accent-color); border-color: var(--wiki-accent-color); color: var(--wiki-accent-label-color); } .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus { border-color: var(--wiki-accent-color); box-shadow: inset 0 0 0 1px var(--wiki-accent-color),inset 0 0 0 2px var(--wiki-accent-label-color); } .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus, .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover, .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active { background-color: var(--wiki-accent-color--hover); border-color: var(--wiki-accent-color--hover); color: var(--wiki-accent-label-color); } .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button { background-color: #bf0017; border-color: #bf0017; color: #fff; } .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus, .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover, .oo-ui-buttonElement-framed.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active { background-color: #59000b; border-color: #59000b; } .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button { background-color: var(--wiki-accent-color); border-color: var(--wiki-accent-color); color: var(--wiki-accent-label-color); } .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button:focus { box-shadow: inset 0 0 0 1px var(--wiki-accent-color--hover),inset 0 0 0 2px var(--wiki-accent-label-color); } .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active { background-color: var(--wiki-accent-color); border-color: var(--wiki-accent-color--hover); color: var(--wiki-accent-label-color); } .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button { background-color: var(--wiki-accent-color); border-color: var(--wiki-accent-color); color: var(--wiki-accent-label-color); } .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active { background-color: var(--wiki-accent-color); border-color: var(--wiki-accent-color); } .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:active, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-popupToolGroup-active > .oo-ui-buttonElement-button{ background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-link-color); } .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:active, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-buttonElement-active > .oo-ui-buttonElement-button, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-popupToolGroup-active > .oo-ui-buttonElement-button { color: var(--wiki-accent-color); } .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > input.oo-ui-buttonElement-button, .oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active { background-color:var(--wiki-content-link-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-link-color) 8%, transparent); color: var(--wiki-content-text-color); border-color: var(--wiki-content-text-mix-color); } .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:active, .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button { color:var(--wiki-content-link-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-link-color) 90%, transparent); border-color:var(--wiki-content-link-color); /* fallback */ border-color: color-mix(in srgb, var(--wiki-content-link-color) 90%, transparent); } .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover { background-color: transparent; } .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover { background-color: var(--wiki-content-dynamic-color--inverted); } .oo-ui-buttonSelectWidget.oo-ui-widget-enabled:focus .oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected .oo-ui-buttonElement-button { border-color: var(--wiki-accent-color--hover); box-shadow: inset 0 0 0 1px var(--wiki-accent-color--hover),inset 0 0 0 2px var(--wiki-accent-label-color); } .mw-htmlform-ooui .mw-htmlform-matrix tbody tr:nth-child(2n) td, .mw-htmlform-ooui .mw-htmlform-matrix tbody tr:hover td { background-color: var(--wiki-content-background-color--secondary); } .oo-ui-popupWidget-popup { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); color:var(--wiki-content-text-color); } .mw-advancedSearch-namespace-selection { background: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-border-color); } .oo-ui-popupWidget-popup .mw-advancedSearch-tooltip-head { color: var(--wiki-content-text-mix-color); } .oo-ui-menuSectionOptionWidget { color: var(--wiki-content-text-mix-color); } /* possibly deprecated */ .mw-ui-button:not(:disabled) { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); color: var(--wiki-accent-color); border-color: var(--wiki-content-border-color); } .mw-ui-button:not(:disabled):visited { color: var(--wiki-accent-color); } .mw-ui-button:not(:disabled):hover { background-color: var(--wiki-content-text-mix-color-95); border-color: var(--wiki-content-border-color); color: var(--wiki-accent-color--hover); } .mw-ui-button:not(:disabled):focus { border-color: var(--wiki-accent-color); color: var(--wiki-content-text-color); box-shadow: none; } .mw-ui-button:not(:disabled):active, .mw-ui-button:not(:disabled).is-on { background-color: var(--wiki-content-background-color); color: var(--wiki-content-dynamic-color); border-color: var(--wiki-content-link-color); } /* end possibly deprecated */ .mw-ui-icon-before::before { filter: var(--wiki-icon-to-link-filter); } .oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame { background-color: var(--wiki-content-background-color); color: var(--wiki-content-text-color); border-color: var(--wiki-content-border-color); } .oo-ui-windowManager-modal>.oo-ui-dialog { background-color:var(--wiki-content-dynamic-color--inverted); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 50%, transparent); } .oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame { border-color:var(--wiki-content-border-color); } .oo-ui-messageDialog-message { color: var(--wiki-content-text-color); } .oo-ui-buttonElement-framed:not(.oo-ui-flaggedElement-primary):not(.oo-ui-buttonElement-active) > .oo-ui-buttonElement-button { color: var(--wiki-content-text-color); } .oo-ui-buttonElement-framed.oo-ui-widget-disabled:not(.oo-ui-flaggedElement-primary):not(.oo-ui-buttonElement-active) > .oo-ui-buttonElement-button { color: var(--wiki-content-text-mix-color-95); } .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button { color: var(--wiki-accent-color); border-color:var(--wiki-accent-color); /* fallback */ border-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); } .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover { color: var(--wiki-accent-color--hover); border-color: var(--wiki-accent-color); box-shadow: inset 0 0 3px var(--wiki-accent-color); } .oo-ui-buttonElement-framed.oo-ui-widget-enabled>.oo-ui-buttonElement-button:active, .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button { background-color: var(--wiki-content-background-color--secondary); color: var(--wiki-content-link-color--hover); border-color: var(--wiki-content-link-color); } .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus { border-color: var(--wiki-accent-color); box-shadow: inset 0 0 0 1px var(--wiki-accent-color); } .oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button, .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button { background-color: var(--wiki-content-text-mix-color); border-color: var(--wiki-content-text-mix-color); } .tdg-templateDataParamWidget-param-description { color: var(--wiki-content-text-mix-color); } .oo-ui-messageWidget.oo-ui-flaggedElement-error:not(.oo-ui-messageWidget-block), .mw-body-content .error { color: var(--wiki-alert-color); } .oo-ui-messageWidget.oo-ui-messageWidget-block.oo-ui-flaggedElement-error { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-alert-color); border-left-width: 10px; } .oo-ui-messageWidget.oo-ui-messageWidget-block.oo-ui-flaggedElement-warning { background-color: var(--wiki-content-background-color--secondary); } .oo-ui-messageWidget.oo-ui-messageWidget-block.oo-ui-flaggedElement-success { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-success-color); border-left-width: 10px; } .oo-ui-messageWidget.oo-ui-messageWidget-block.oo-ui-flaggedElement-notice { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-text-mix-color); } .tdg-templateDataParamWidget-param-alias { color: var(--wiki-content-text-mix-color); background-color: var(--wiki-content-background-color); border-color: var(--wiki-content-border-color); } .tdg-templateDataParamWidget-param-alias:first-child { background-color: var(--wiki-content-background-color--secondary); } .mw-templatedata-doc-muted { color: var(--wiki-content-text-mix-color); } .oo-ui-processDialog-actions-safe .oo-ui-widget-enabled.oo-ui-iconElement:not(.oo-ui-labelElement) > .oo-ui-buttonElement-button:active { background-color: var(--wiki-content-background-color--secondary); border-right-color: var(--wiki-accent-color); } /* Date picker */ .mw-widget-dateInputWidget-handle { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); } .mw-widget-dateInputWidget.oo-ui-widget-enabled .mw-widget-dateInputWidget-handle:hover { border-color: var(--wiki-accent-color); box-shadow: none; } .mw-widget-dateInputWidget.oo-ui-widget-enabled .mw-widget-dateInputWidget-handle:focus { border-color: var(--wiki-accent-color); box-shadow: inset 0 0 0 1px var(--wiki-accent-color); } .mw-widget-dateInputWidget.oo-ui-widget-enabled .mw-widget-dateInputWidget-handle > .oo-ui-labelElement-label { color: var(--wiki-content-text-color); } .mw-widget-calendarWidget { border-color: var(--wiki-content-border-color); } .mw-widget-calendarWidget:focus { border-color: var(--wiki-accent-color); box-shadow: inset 0 0 0 1px var(--wiki-accent-color); } .mw-widget-dateInputWidget-calendar { background-color: var(--wiki-content-background-color); } .mw-widget-dateInputWidget-calendar:focus { box-shadow: inset 0 0 0 1px var(--wiki-accent-color),0 2px 2px 0 rgba(0,0,0,0.2); } .mw-widget-calendarWidget-header .oo-ui-labelElement-label, .mw-widget-calendarWidget-day, .mw-widget-calendarWidget-month, .mw-widget-calendarWidget-year { color: var(--wiki-content-text-color); } .mw-widget-calendarWidget-day-heading, .mw-widget-calendarWidget-day-additional { color:var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 55%, transparent); } .mw-widget-calendarWidget-day-today { box-shadow: inset 0 0 0 1px var(--wiki-accent-color); } .mw-widget-calendarWidget-item-selected { background-color:var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 90%, transparent); color: var(--wiki-accent-label-color); } .mw-widget-calendarWidget-item:hover { background-color: var(--wiki-accent-color); color: var(--wiki-accent-label-color); } .mw-widgets-datetime-calendarWidget:focus { border-color: var(--wiki-content-border-color); box-shadow: none; } .mw-widgets-datetime-calendarWidget-grid { overflow-x: initial; } .mw-widgets-datetime-dateTimeInputWidget-handle { background-color: var(--wiki-content-background-color); border-color: var(--wiki-content-border-color); color: var(--wiki-content-text-color); } .mw-widgets-datetime-dateTimeInputWidget.oo-ui-widget-enabled .mw-widgets-datetime-dateTimeInputWidget-handle:hover { border-color: var(--wiki-content-border-color); } .mw-widgets-datetime-dateTimeInputWidget.oo-ui-widget-enabled .mw-widgets-datetime-dateTimeInputWidget-editField:hover { background-color: var(--wiki-content-background-color); } .mw-widgets-datetime-calendarWidget { background-color: var(--wiki-content-background-color); border-color: var(--wiki-content-border-color); } .mw-widgets-datetime-calendarWidget-grid .mw-widgets-datetime-calendarWidget-cell.mw-widgets-datetime-calendarWidget-extra .oo-ui-buttonElement-button .oo-ui-labelElement-label { color:var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 55%, transparent); } /* Unpatrolled page creations on Special:NewPages */ .not-patrolled { background-color:var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-warning-color) 16%, transparent); } .mw-spinner-container > div::after { background-color:var(--wiki-content-text-color); } pre, code, .mw-code { background-color: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-border-color); color: var(--wiki-content-text-color); } .mw-templatedata-doc-param-alias { color:var(--wiki-content-text-mix-color); } .mw-highlight, .view-light .mw-highlight { --pygments-background:var(--wiki-content-background-color--secondary); /* fallback */ --pygments-background: color-mix(in srgb, var(--wiki-content-background-color--secondary) 50%, transparent); --pygments-err: #db0000; --pygments-c: #3a7575; --pygments-k: #008000; --pygments-o: #666; --pygments-ch: #3a7575; --pygments-cm: #3a7575; --pygments-cp: #986200; --pygments-cpf: #3a7575; --pygments-c1: #3a7575; --pygments-cs: #3a7575; --pygments-gd: #a00000; --pygments-gr: #db0000; --pygments-gh: #000080; --pygments-gi: #008100; --pygments-go: #6e6e6e; --pygments-gp: #000080; --pygments-gu: #800080; --pygments-gt: #04d; --pygments-kc: #008000; --pygments-kd: #008000; --pygments-kn: #008000; --pygments-kp: #008000; --pygments-kr: #008000; --pygments-kt: #b00040; --pygments-m: #666; --pygments-s: #ba2121; --pygments-na: #647421; --pygments-nb: #008000; --pygments-nc: #00f; --pygments-no: #800; --pygments-nd: #a412ff; --pygments-ni: #6d6d6d; --pygments-ne: #c9352e; --pygments-nf: #00f; --pygments-nl: #727200; --pygments-nn: #00f; --pygments-nt: #008000; --pygments-nv: #19177c; --pygments-ow: #a412ff; --pygments-w: #6e6e6e; --pygments-mb: #666; --pygments-mf: #666; --pygments-mh: #666; --pygments-mi: #666; --pygments-mo: #666; --pygments-sa: #ba2121; --pygments-sb: #ba2121; --pygments-sc: #ba2121; --pygments-dl: #ba2121; --pygments-sd: #ba2121; --pygments-s2: #ba2121; --pygments-se: #a55a1e; --pygments-sh: #ba2121; --pygments-si: #af4d74; --pygments-sx: #008000; --pygments-sr: #af4d74; --pygments-s1: #ba2121; --pygments-ss: #19177c; --pygments-bp: #008000; --pygments-fm: #00f; --pygments-vc: #19177c; --pygments-vg: #19177c; --pygments-vi: #19177c; --pygments-vm: #19177c; --pygments-il: #666; } .view-dark .mw-highlight { --pygments-background:var(--wiki-content-background-color--secondary); /* fallback */ --pygments-background: color-mix(in srgb, var(--wiki-content-background-color--secondary) 50%, transparent); --pygments-err: #fe4242; --pygments-c: #4b9797; --pygments-k: #00a300; --pygments-o: #898989; --pygments-ch: #4b9797; --pygments-cm: #4b9797; --pygments-cp: #c17d00; --pygments-cpf: #4b9797; --pygments-c1: #4b9797; --pygments-cs: #4b9797; --pygments-gd: #ff3f3f; --pygments-gr: #fe4242; --pygments-gh: #7a7aff; --pygments-gi: #00a000; --pygments-go: #8a8a8a; --pygments-gp: #7a7aff; --pygments-gu: #f500f5; --pygments-gt: #4e84fe; --pygments-kc: #00a300; --pygments-kd: #00a300; --pygments-kn: #00a300; --pygments-kp: #00a300; --pygments-kr: #00a300; --pygments-kt: #fe357e; --pygments-m: #898989; --pygments-s: #e25e5e; --pygments-na: #80932a; --pygments-nb: #00a300; --pygments-nc: #7a7afe; --pygments-no: #ff4040; --pygments-nd: #bf5aff; --pygments-ni: #999; --pygments-ne: #da655f; --pygments-nf: #7a7afe; --pygments-nl: #a0a000; --pygments-nn: #7a7afe; --pygments-nt: #00a300; --pygments-nv: #8381e7; --pygments-ow: #bf5aff; --pygments-w: #bbb; --pygments-mb: #898989; --pygments-mf: #898989; --pygments-mh: #898989; --pygments-mi: #898989; --pygments-mo: #898989; --pygments-sa: #e25e5e; --pygments-sb: #e25e5e; --pygments-sc: #e25e5e; --pygments-dl: #e25e5e; --pygments-sd: #e25e5e; --pygments-s2: #e25e5e; --pygments-se: #d07125; --pygments-sh: #e25e5e; --pygments-si: #c17492; --pygments-sx: #00a300; --pygments-sr: #c17492; --pygments-s1: #e25e5e; --pygments-ss: #8381e7; --pygments-bp: #00a300; --pygments-fm: #7a7afe; --pygments-vc: #8381e7; --pygments-vg: #8381e7; --pygments-vi: #8381e7; --pygments-vm: #8381e7; --pygments-il: #898989; } div.mw-highlight, .skin-theme-clientpref-night div.mw-highlight { background-color: var(--wiki-content-dynamic-color--inverted); margin: 0.5em 0; } .mw-highlight .err {border-color: var(--pygments-err);} .mw-highlight .c {color: var(--pygments-c);} .mw-highlight .k {color: var(--pygments-k);} .mw-highlight .o {color: var(--pygments-o);} .mw-highlight .ch {color: var(--pygments-ch);} .mw-highlight .cm {color: var(--pygments-cm);} .mw-highlight .cp {color: var(--pygments-cp);} .mw-highlight .cpf {color: var(--pygments-cpf);} .mw-highlight .c1 {color: var(--pygments-c1);} .mw-highlight .cs {color: var(--pygments-cs);} .mw-highlight .gd {color: var(--pygments-gd);} .mw-highlight .gr {color: var(--pygments-gr);} .mw-highlight .gh {color: var(--pygments-gh);} .mw-highlight .gi {color: var(--pygments-gi);} .mw-highlight .go {color: var(--pygments-go);} .mw-highlight .gp {color: var(--pygments-gp);} .mw-highlight .gu {color: var(--pygments-gu);} .mw-highlight .gt {color: var(--pygments-gt);} .mw-highlight .kc {color: var(--pygments-kc);} .mw-highlight .kd {color: var(--pygments-kd);} .mw-highlight .kn {color: var(--pygments-kn);} .mw-highlight .kp {color: var(--pygments-kp);} .mw-highlight .kr {color: var(--pygments-kr);} .mw-highlight .kt {color: var(--pygments-kt);} .mw-highlight .m {color: var(--pygments-m);} .mw-highlight .s {color: var(--pygments-s);} .mw-highlight .na {color: var(--pygments-na);} .mw-highlight .nb {color: var(--pygments-nb);} .mw-highlight .nc {color: var(--pygments-nc);} .mw-highlight .no {color: var(--pygments-no);} .mw-highlight .nd {color: var(--pygments-nd);} .mw-highlight .ni {color: var(--pygments-ni);} .mw-highlight .ne {color: var(--pygments-ne);} .mw-highlight .nf {color: var(--pygments-nf);} .mw-highlight .nl {color: var(--pygments-nl);} .mw-highlight .nn {color: var(--pygments-nn);} .mw-highlight .nt {color: var(--pygments-nt);} .mw-highlight .nv {color: var(--pygments-nv);} .mw-highlight .ow {color: var(--pygments-ow);} .mw-highlight .w {color: var(--pygments-w);} .mw-highlight .mb {color: var(--pygments-mb);} .mw-highlight .mf {color: var(--pygments-mf);} .mw-highlight .mh {color: var(--pygments-mh);} .mw-highlight .mi {color: var(--pygments-mi);} .mw-highlight .mo {color: var(--pygments-mo);} .mw-highlight .sa {color: var(--pygments-sa);} .mw-highlight .sb {color: var(--pygments-sb);} .mw-highlight .sc {color: var(--pygments-sc);} .mw-highlight .dl {color: var(--pygments-dl);} .mw-highlight .sd {color: var(--pygments-sd);} .mw-highlight .s2 {color: var(--pygments-s2);} .mw-highlight .se {color: var(--pygments-se);} .mw-highlight .sh {color: var(--pygments-sh);} .mw-highlight .si {color: var(--pygments-si);} .mw-highlight .sx {color: var(--pygments-sx);} .mw-highlight .sr {color: var(--pygments-sr);} .mw-highlight .s1 {color: var(--pygments-s1);} .mw-highlight .ss {color: var(--pygments-ss);} .mw-highlight .bp {color: var(--pygments-bp);} .mw-highlight .fm {color: var(--pygments-fm);} .mw-highlight .vc {color: var(--pygments-vc);} .mw-highlight .vg {color: var(--pygments-vg);} .mw-highlight .vi {color: var(--pygments-vi);} .mw-highlight .vm {color: var(--pygments-vm);} .mw-highlight .il {color: var(--pygments-il);} .mw-highlight pre { background: var(--pygments-background); margin: 0; } .mw-content-ltr.mw-highlight-lines pre, .mw-content-ltr.content .mw-highlight-lines pre { padding-left: 3.5em; box-shadow: inset 2.75em 0 0 var(--wiki-content-dynamic-color--inverted); } .mw-highlight .hll { background-color: var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent) } .mw-apisandbox-toolbar { background: var(--wiki-content-background-color--secondary); top: var( --wikigg-header-height ); } /* special:replacetext */ .ext-replacetext-searchoptions { background-color: transparent; border: 1px solid var(--wiki-content-border-color); } .ext-replacetext-searchoptions .ext-replacetext-divider { border-bottom: 1px solid var(--wiki-content-border-color); } /**/ .view-dark textarea { background-color: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-border-color); color: var(--wiki-content-text-color); } .view-dark textarea:focus-visible { outline-color: var(--wiki-accent-color); outline-style: solid; } .oo-ui-textInputWidget.oo-ui-widget-enabled textarea.oo-ui-inputWidget-input:focus { outline: 1px solid var(--wiki-accent-color); } /* make math formulas legible on dark theme */ .mwe-math-fallback-image-inline, .mwe-math-fallback-image-display, .ve-ui-mwLatexPage-symbol { filter: var(--wiki-icon-general-filter); } /* search bar */ #searchInput { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); color: var(--wiki-content-text-color); box-shadow: none; } #searchInput:focus, #simpleSearch:hover #searchInput, #simpleSearch:hover #searchInput:focus { border-color: var(--wiki-accent-color); box-shadow: none; } #searchButton { filter: var(--wiki-icon-to-link-filter); } .vector-search-box-input::placeholder { color:var(--wiki-content-text-mix-color); } /* Search suggestions */ .suggestions-results, .suggestions-special { background-color: var(--wiki-content-background-color--secondary); } .suggestions a.mw-searchSuggest-link, .suggestions a.mw-searchSuggest-link:hover, .suggestions a.mw-searchSuggest-link:active, .suggestions a.mw-searchSuggest-link:focus { color: var(--wiki-content-text-color); } .suggestions-result { color: var(--wiki-content-link-color); } .suggestions-result-current { background-color: var(--wiki-accent-color); color: var(--wiki-accent-label-color); } .suggestions-special .special-label { color: var(--wiki-content-text-mix-color); } .suggestions-special.suggestions-result-current .special-label { color:var(--wiki-accent-label-color); } .suggestions-special .special-query { color: var(--wiki-link-label-color); } /* search page */ fieldset#mw-searchoptions { background-color:var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-background-color--secondary) 50%, transparent); border-color: var(--wiki-content-border-color); } #mw-searchoptions .divider { border-color: var(--wiki-content-border-color); } .mw-search-profile-tabs { background-color:var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-background-color--secondary) 50%, transparent); border: 1px solid var(--wiki-content-border-color); margin-top: 1em; } .mw-search-profile-tabs div.search-types ul li.current a { color: var(--wiki-content-text-color); } .results-info, .mw-search-result-data { color: var(--wiki-content-text-mix-color); } /**/ /* Login/register page */ .mw-number-text { color:var(--wiki-content-text-mix-color); } .mw-body-content .mw-number-text h3 { color:var(--wiki-heading-color); } .mw-number-text.icon-edits, .mw-number-text.icon-pages, .mw-number-text.icon-contributors { position:relative; background:none; } .mw-number-text.icon-edits::before, .mw-number-text.icon-pages::before, .mw-number-text.icon-contributors::before { position:absolute; width:95px; height:100%; left:0; top:0; content:''; filter:brightness(0) var(--wiki-icon-general-filter); } .mw-number-text.icon-edits::before { background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABLCAYAAADnAAD1AAACrUlEQVR4AWL4//8/oH170LEsiKIwXGPbtm0EY9s2g7bdjzh4oVnjyslKVZ3hSu+d5L/c0Xdx/Bt5jjCyAR3QAd9/+DhSW4oeoYmJGQdM4HWjYfQKTXTA8pZFeIgjOmA5Hkd0wDwe6TWa6IAcr4eA5RAdEC0neKWIDoieFcMRRPOAaDJ6+4uITxzwJ+KbmnjdaKkDliISPIv/gcvRxsT7kzgix7MGuBz1ooFyRIq3xOJ64ArUG0EMoMV5RI5nAJDjRV1Go1DIIL7meJKAAngc8Qn/tgoACuCNRtfRJhQyGQLkeJcI3u3oP3GzA5bjjYnwEEE0Acjx+urgEcRNVgFX1sUjdaHF9gA53sW/jScFKIC3SH8hIo5nDXAVwbtA8O6U4+kD6uPpA2rhWQNcXYh3N4HXSfAMAHK8838BTwBQF28hCpKAAnj3SvCsAa4heOdU8NQB5fGUAfXxhAEZ3lmCdz+B18Hx9ABN46kBrv1DeAtQsAZYivdAB08AMMLrJ3hBHU8BkOGdqcyMLcCbj4I1QH08YUCGd0kbTwCQ4MW1oFkR3kM5PAHAdVU8gjhPEk8AkOKRBjN481AwAxjhDRCM4Rq1EzwTgAzvGtoqiicAmMcbjRZI4wkATiP/eVe/4QU0DvXJ4gkAHq9gNEV4cdPRRtQjgycAOA51VkAOoECaiF5J4QkA7iVnuI+vgTcXBauAo1BjBeU0mZuCXlfm2gieOcCN5KzPadH7s9EF1CeJJwD4lKy2BLQM3UFDaFgSTwBwKcE5il6Q1wmeA95KQLGafuI54Ay+I4D2Fm1HY2QwBADPZdCG0EO0Wg5CAHAi6k1ce3E1fdDHAQ8TuG50Ml6F4TngGNQawTWjg2iCPoAG4I5vcG/QVrLDIJMDnvyNBYMDeg7ogA7ogJ4DOqBmnwD4A/itR9A4HwAAAABJRU5ErkJggg==) no-repeat left center; } .mw-number-text.icon-pages::before { background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABLCAYAAADnAAD1AAAByUlEQVR4Ae3XQ6JcQRhH8Rs7mYWT2LZt25rEtpNvicGCOid51lWhX3X/B78F1ClnjUZDHChCDgVUQAVUwF+//zTbaEzwJKuqFQJOwVOYB0fSDege8RnMg8OxA47HhMhGho4YM+BHWGTXMApZP1NxAqdKuIS3DhETC5gT0cEonM+LmH7A8BHHF4zhUMyAr3DKswt4ARvCVQ8RL8FyHIoV8DqyAEbidMCIu2AFDqUbEBiLd4EiroOVcDDdgMBJWI4rNSOugpV0MOWAa2EBIq6HVXAw1YDzYQEiboVVdCDFgLNhASIegtWwP7WAM2AVXC4Z8SKsho+pBZwDCxDxIZ7hGo5iN7ZgG/bjOj61QsB5sAARxyArMA7nUw+4GuYQcaSHv/PrlAPuhDnYh8zR9ZQDnoF1+ooXuI87uIvH+JoT8ES7B1yJxZiGETnbbAHuKqCbkbiqgG5mK6Cb8QqogAqogAqogAqogAqogAqogAqogAqogAqogAqogAqogAqogAqogAqogAqogAqogAqogG0acAwmVHRLAXschDlQQAVUwKYGXIZTDo7qFnakgAqogP4ooAK+waVh5GpSAROggAqogFKOAiqgAiqg/AUjJ7hc1MT1egAAAABJRU5ErkJggg==) no-repeat left center } .mw-number-text.icon-contributors::before { background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAtCAYAAAA5reyyAAAEMElEQVR4AWJ4/uLFYMJsgHbtIVhzLQqg8G7btm3bfLZt2/abtG3btm3btt19tXuNU5UbnV9VPfj2PCtODh7DaOzHDdzEIQxFG6SERItoilcPq6EOpqNsrAdMiWb4CQPQEx+jMsSH13Ad6tJRtIf4UBkfoyf642c0Q8pwBSyOEYiDWpzHP8gIcelZ3IV6dBENIS5lxD84D7WIwwgUD3XActjk8jTLDnFQAiegPm1FFoiD7JgKdbAJ5UIVMA0WQ10aCnEwHBrQ/xAHQ6EuLULqUAT8EurRkxAbtXEWGtBu5IPYeBLq0RemA6bDUqhHwyE2/oIa8qHho3wp0pkM2AS3oR4dRCmIFWZADRkEsUIpHIR6dBtNTAZ8DepDEhpDLIphL9Q9X0dMYyRBfXjNZMD3oT61hFjUwHmoITtQAGLREurT+yYDvgn1IQ4NwhBwP0pALBogDurDmyYDPgL14QjKQCzK43gYjsAyOAL14RGTAcvhKNSjWUgLsciDzVBDliG9zceJWT53fFlzAYGJUI/+g9iYCjVkBMTGv1CPJkJMB/wM6sEdtILY6Aw15A+IjVa4A/Xgs1C9ym2AujQVkoznkQgN6CpaQAwd7euQynxA4EMkuTz6noAkIxu2QQNaAXHwhMujMAkfhvpz1gSogwEQF/pAA/oV4sIAqIPxkFAHLIwVUBuLkQ/iQkNchPp0BHkhLuTDYocjuVDoAwLNobCKx7MQZ0buxn9CPHgO8VBYNYOEI2AxTIPaWI3SEJdq47rPz1jZIC6VxmqHm17RUAYsjm+wB+rgDH5FZYgL/0M9egjiQmX8hjNQB3vwDYqZClgRn2I8TkM9uoxp+BY1IDayYAnUpd8hyaiBbzEdl6EencZ4fIoKXgPWQ0eswTmoIRexCz9DYFUWh6AOeiEFBFYfYYv7aK6cxRp0RL3kAjbBSsRBQ+gwykBg1SrAF+5qOAUNoTisRBNrwHeQAA2D7hAbLQL+qOoBDYMEvA0RRm3cg4bQIYxBO4iNnFgOdfAoJBntMAaHoSF0D7WtbwOmJGIHBuFtFHJxhx8HdeEEnoI4KIS3MQg7kAg1rI8w9kMN2YQ/8RByQRwUxE844GPvj0B9iAu58BD+NPwdcp8wrkEDOoG3kR3iIC0exhAcgQZwHQvwOfJDXMiOt3ECGtA1EwH3oDLERgoUxisYhv24AzUoEWexCD+iJtJBklEF+yId8A7aQywyoCK+xCJcRSI0TO5iL7qjDXIjBcTiIdwNGnAetmKjR8fQHdYL93tYiSRolDiJzqgLseiOYz62fyvmCcOUJ3EAGuV6oUi0rVD9BBpDtqJstARsj3hojFmBdNEQcDw0Rn0V6YAVcBIao2YjXSQDtoDGsDOoFMmAD0FjXLMHAYN5KJIBW+FBwADq4x40hrWLZMCKOIhEXIsxd3EdDSF+3QeCfPkMAgchOAAAAABJRU5ErkJggg==) no-repeat left center } /**/ /* Multimedia viewer */ .mw-mmv-post-image, .mw-mmv-image-metadata { background-color: var(--wiki-content-background-color); border-color: var(--wiki-content-border-color); color: var(--wiki-content-text-color); } .mw-mmv-ttf-container .mw-mmv-ttf-ellipsis { box-shadow: -4px 6px 0 0 var(--wiki-content-background-color); } .mw-mmv-title-para .mw-mmv-ttf-ellipsis { background-color: var(--wiki-content-background-color); } .mw-mmv-title-para .mw-mmv-ttf-ellipsis::before { background-image: linear-gradient(to right, transparent 0%, var(--wiki-content-background-color) 100%); } .mw-mmv-ttf-ellipsis-container:hover .mw-mmv-ttf-container .mw-mmv-ttf-ellipsis { background-color: var(--wiki-content-background-color--secondary); } .mw-mmv-ttf-container .mw-mmv-ttf-ellipsis:hover, .mw-mmv-ttf-ellipsis-container .mw-mmv-ttf-container .mw-mmv-ttf-ellipsis:hover { background-color: var(--wiki-content-text-mix-color-95); background-color: color-mix(in srgb, var(--wiki-content-background-color--secondary) 95%, var(--wiki-content-dynamic-color)); } .mw-ui-button.mw-ui-progressive:not(:disabled) { background-color: var(--wiki-accent-color); border-color: var(--wiki-accent-color); color: var(--wiki-accent-label-color); } .mw-ui-button.mw-ui-progressive:not(:disabled):hover { background-color: var(--wiki-accent-color--hover); } .skin-vector .mw-ui-button.mw-ui-progressive:hover, .skin-vector .mw-ui-button.mw-ui-primary:disabled { box-shadow: 0px 0px 16px rgba(0, 0, 0, 0.75) inset, 0 0 5px var(--wiki-content-border-color); border: 2px solid var(--wiki-content-border-color); } .mw-ui-button.mw-ui-progressive:not(:disabled):active, .mw-ui-button.mw-ui-progressive:not(:disabled).is-on { background-color: var(--wiki-accent-color); border-color: var(--wiki-accent-color); } .mw-ui-button.mw-ui-progressive { box-shadow: 0px 0px 16px rgba(0, 0, 0, 0.75) inset, 0 0 5px var(--wiki-content-border-color) } /* possibly deprecated */ .mw-ui-input:not(:disabled) { background-color: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-border-color); color: var(--wiki-content-text-color); } .mw-ui-input:not(:disabled):hover, .mw-ui-input:not(:disabled):focus { background-color: var(--wiki-content-background-color--secondary); color: var(--wiki-content-text-color); border-color: var(--wiki-accent-color); box-shadow: none; } .mw-ui-input::placeholder { color:var(--wiki-content-text-mix-color); } /* end possibly deprecated */ .mw-mmv-dialog { background-color: var(--wiki-content-background-color); box-shadow: 0 2px 2px 0 var(--wiki-content-border-color); } .mw-mmv-dialog .mw-mmv-dialog-down-arrow { background-color: var(--wiki-content-background-color); } .mw-mmv-options-dialog-header { color: var(--wiki-content-text-color); } .mw-mmv-options-text-header, .mw-mmv-options-text-body { color: var(--wiki-content-text-mix-color); } .mw-mmv-download-pane .mw-mmv-download-area .mw-mmv-download-select-menu { background-image: none; } .mw-mmv-download-pane .mw-mmv-download-area .mw-mmv-download-select-menu span { display: none; } .mw-mmv-download-pane .mw-mmv-download-area .mw-mmv-download-select-menu::after { display:inline-block; width:8px; height:100%; content:''; --mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2212%22 height=%2212%22 viewBox=%220 0 12 12%22%3E %3Cpath fill=%22%23000%22 fill-rule=%22evenodd%22 d=%22m2.023 3 3.49 5.953L9 3z%22 clip-rule=%22evenodd%22/%3E %3C/svg%3E") no-repeat; --mask-size: 12px; --mask-position: center; -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-size: var(--mask-size); mask-size: var(--mask-size); -webkit-mask-position: var(--mask-position); mask-position: var(--mask-position); background-color: currentColor; } .mw-mmv-embed-dimensions { color:var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 76%, transparent); } .oo-ui-optionWidget-selected .mw-mmv-embed-dimensions { color:var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 82%, transparent); } .mw-mmv-download-pane .mw-mmv-download-attribution { background-color: var(--wiki-content-background-color--secondary); color: var(--wiki-content-text-mix-color); } .mw-mmv-download-pane .mw-mmv-download-attribution:hover { background-color: var(--wiki-content-dynamic-color--inverted); color: var(--wiki-content-text-color); } .mw-mmv-download-pane .mw-mmv-download-area .mw-mmv-download-preview-link, .mw-mmv-download-pane .mw-mmv-download-attribution-cta-invite { color: var(--wiki-content-text-mix-color); } .mw-ui-button.mw-ui-quiet, .mw-ui-button.mw-ui-quiet.mw-ui-progressive, .mw-ui-button.mw-ui-quiet.mw-ui-destructive { color: var(--wiki-accent-color); } .mw-ui-button.mw-ui-progressive:not(:disabled):focus { box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 1), inset 0 0 0 2px var(--wiki-accent-color); } input[type="checkbox"]:active+.mw-ui-button.mw-ui-quiet, input[type="checkbox"]:active+.mw-ui-button.mw-ui-quiet.mw-ui-progressive, input[type="checkbox"]:active+.mw-ui-button.mw-ui-quiet.mw-ui-destructive, .mw-ui-button.mw-ui-quiet:active, .mw-ui-button.mw-ui-quiet.mw-ui-progressive:active, .mw-ui-button.mw-ui-quiet.mw-ui-destructive:active, input[type="checkbox"]:focus+.mw-ui-button.mw-ui-quiet, input[type="checkbox"]:focus+.mw-ui-button.mw-ui-quiet.mw-ui-progressive, input[type="checkbox"]:focus+.mw-ui-button.mw-ui-quiet.mw-ui-destructive, .mw-ui-button.mw-ui-quiet:focus, .mw-ui-button.mw-ui-quiet.mw-ui-progressive:focus, .mw-ui-button.mw-ui-quiet.mw-ui-destructive:focus { color: var(--wiki-content-text-color); } /**/ /* Echo */ .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-optionWidget-selected > .oo-ui-buttonElement-button:hover { color: var(--wiki-accent-label-color); } .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover { color: var(--wiki-content-text-color); } @-webkit-keyframes unseen-fadeout-to-unread { from { background-color:var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent); } to { background-color:var(--wiki-content-background-color--secondary); } } @keyframes unseen-fadeout-to-unread { from { background-color:var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent); } to { background-color:var(--wiki-content-background-color--secondary); } } @-webkit-keyframes unseen-fadeout-to-read { from { background-color:var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent); } to { background-color:var(--wiki-content-background-color); } } @keyframes unseen-fadeout-to-read { from { background-color:var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent); } to { background-color:var(--wiki-content-background-color); } } .oo-ui-popupWidget-anchored-top .oo-ui-popupWidget-anchor:before { border-bottom-color: var(--wiki-content-border-color); } .oo-ui-popupWidget-anchored-top .oo-ui-popupWidget-anchor:after { border-bottom-color: var(--wiki-content-background-color--secondary); } .client-js .mw-echo-special-nojs { filter:var(--wiki-icon-general-filter) } /**/ /* codex fixes */ .cdx-checkbox__icon { background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb,var(--wiki-accent-color) 5%,transparent); } /**/ /************************* * End Vector theme fixes * **************************/ /************************ * Theme-based Scribunto * *************************/ #mw-scribunto-input { background-color: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-border-color); color: var(--wiki-content-text-color); } .mw-scribunto-console-fieldset, .mw-scribunto-message, .mw-scribunto-input, .mw-scribunto-error, .mw-scribunto-print, .mw-scribunto-normalOutput { background: transparent; } .mw-scribunto-console-fieldset { color: var(--wiki-content-text-color); } .mw-scribunto-message { color: var(--wiki-content-text-color); } .mw-scribunto-input { color: var(--wiki-content-text-color--hover); } .mw-scribunto-error { color: var(--wiki-alert-color); } .mw-scribunto-print { color: var(--wiki-content-text-color); } .mw-scribunto-normalOutput { color: var(--wiki-content-text-color); } /**************** * End Scribunto * *****************/ /*************************** * Theme-based VisualEditor * ****************************/ .ve-activated .vector-menu-tabs .selected { box-shadow:inset 0 -1px 0 var(--wiki-content-border-color); /* fallback */ box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--wiki-content-border-color) 50%, transparent); } .ve-init-mw-progressBarWidget { background-color: var(--wiki-content-background-color); border-color: var(--wiki-accent-color); box-shadow:0 1px 1px var(--wiki-content-dynamic-color); /* fallback */ box-shadow: 0 1px 1px color-mix(in srgb, var(--wiki-content-dynamic-color) 15%, transparent); } .ve-init-mw-progressBarWidget-bar { background-color:var(--wiki-accent-color); } .ve-init-mw-desktopArticleTarget-toolbarPlaceholder-bar { border-bottom-color: var(--wiki-content-border-color); } .ve-init-mw-desktopArticleTarget-toolbarPlaceholder-floating .ve-init-mw-desktopArticleTarget-toolbarPlaceholder-bar { top: var(--wikigg-header-height, 0); background: var(--wiki-content-background-color); } div.ve-ce-branchNode { border-color:var(--wiki-content-border-color); } .ve-ce-focusableNode-highlight { background: var(--wiki-accent-color); box-shadow: inset 0 0 0 1px var(--wiki-accent-color); } .ve-ce-surface-highlights-focused .ve-ce-focusableNode-highlights { opacity: 0.25; } .ve-ce-branchNode-blockSlug, .ve-ce-branchNode-newSlug:not(.ve-ce-branchNode-newSlug-open) { outline-color: var(--wiki-accent-color); background-color:var(--wiki-content-dynamic-color--inverted); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 75%, transparent); } figure[typeof~='mw:File/Thumb'], figure[typeof~='mw:File/Frame'], figure[typeof~='mw:Image/Thumb'], figure[typeof~='mw:Video/Thumb'], figure[typeof~='mw:Audio/Thumb'], figure[typeof~='mw:Image/Frame'], figure[typeof~='mw:Video/Frame'], figure[typeof~='mw:Audio/Frame'] { border-color: var(--wiki-content-border-color); background-color: var(--wiki-content-background-color--secondary); } figure[typeof~='mw:File/Thumb'] > a:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:File/Frame'] > a:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:Image/Thumb'] > a:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:Video/Thumb'] > a:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:Audio/Thumb'] > a:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:Image/Frame'] > a:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:Video/Frame'] > a:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:Audio/Frame'] > a:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:File/Thumb'] > span:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:File/Frame'] > span:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:Image/Thumb'] > span:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:Video/Thumb'] > span:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:Audio/Thumb'] > span:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:Image/Frame'] > span:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:Video/Frame'] > span:first-child > *:first-child:not(.mw-broken-media), figure[typeof~='mw:Audio/Frame'] > span:first-child > *:first-child:not(.mw-broken-media) { border-color: var(--wiki-content-border-color); background: var(--wiki-content-background-color--secondary); } figure[typeof~='mw:File/Thumb'] > figcaption, figure[typeof~='mw:File/Frame'] > figcaption, figure[typeof~='mw:Image/Thumb'] > figcaption, figure[typeof~='mw:Video/Thumb'] > figcaption, figure[typeof~='mw:Audio/Thumb'] > figcaption, figure[typeof~='mw:Image/Frame'] > figcaption, figure[typeof~='mw:Video/Frame'] > figcaption, figure[typeof~='mw:Audio/Frame'] > figcaption { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); } .ve-ui-specialCharacterPage-character, .oo-ui-toolbar-position-top .ve-ui-toolbarDialog-position-above, .oo-ui-bookletLayout > .oo-ui-menuLayout-menu, .ve-ui-mwTwoPaneTransclusionDialogLayout > .oo-ui-menuLayout-menu, .ve-ui-specialCharacterPage-character:hover { border-color:var(--wiki-content-border-color); } .ve-ui-specialCharacterPage-character:hover { box-shadow:inset 0 0 1px 1px var(--wiki-accent-color); } .oo-ui-listToolGroup-tools .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-title, .oo-ui-popupToolGroup-tools .oo-ui-tool-link .oo-ui-tool-accel { color: var(--wiki-content-text-mix-color); } .oo-ui-barToolGroup-tools.oo-ui-toolGroup-enabled-tools .oo-ui-tool.oo-ui-widget-disabled.oo-ui-flaggedElement-primary > .oo-ui-tool-link .oo-ui-tool-title, .oo-ui-barToolGroup-tools.oo-ui-toolGroup-disabled-tools .oo-ui-tool.oo-ui-flaggedElement-primary > .oo-ui-tool-link .oo-ui-tool-title { color:var(--wiki-content-dynamic-color--inverted); /* fallback */ color: color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 78%, transparent); } .ve-activated .ve-init-mw-desktopArticleTarget-originalContent #catlinks:hover { background: var(--wiki-content-background-color--secondary); /* fallback */ background: color-mix(in srgb, var(--wiki-content-link-color) 10%, transparent); } .oo-ui-tabSelectWidget-frameless .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected { color: var(--wiki-accent-color); box-shadow: inset 0 -2px 0 0 var(--wiki-accent-color); } .oo-ui-tabOptionWidget { color: var(--wiki-content-text-mix-color); } .oo-ui-tabSelectWidget-frameless .oo-ui-tabOptionWidget.oo-ui-widget-enabled:not(.oo-ui-optionWidget-selected):hover { color: var(--wiki-accent-color--hover); box-shadow: inset 0 -2px 0 0 var(--wiki-accent-color--hover); } .oo-ui-tabSelectWidget-frameless .oo-ui-tabOptionWidget.oo-ui-widget-enabled:not(.oo-ui-optionWidget-selected):active { color: var(--wiki-content-text-color); box-shadow: inset 0 -2px 0 0 var(--wiki-accent-color--hover); } .oo-ui-tabSelectWidget-frameless { box-shadow: inset 0 -1px 0 0 var(--wiki-content-border-color); } .oo-ui-textInputWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid .oo-ui-inputWidget-input { border-color: var(--wiki-alert-color); } .ve-ce-linkAnnotation.ve-ce-annotation-active { box-shadow:0 0 0 1px var(--wiki-content-background-color--secondary); /* fallback */ box-shadow: 0 0 0 1px color-mix(in srgb, var(--wiki-content-link-color) 20%, transparent); background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-link-color) 10%, transparent); } .ve-ui-mwInternalLinkContextItem-withImage > .oo-ui-iconElement.oo-ui-iconElement-icon { background-color: var(--wiki-content-text-mix-color-95); background-color: color-mix(in srgb, var(--wiki-content-text-mix-color-95) 90%, var(--wiki-content-dynamic-color)); border-color: var(--wiki-content-text-mix-color-95); border-color: color-mix(in srgb, var(--wiki-content-text-mix-color-95) 90%, var(--wiki-content-dynamic-color)); filter: unset; } .mw-widget-titleWidget-menu-withImages .mw-widget-titleOptionWidget.oo-ui-iconElement > .oo-ui-iconElement-icon.mw-widget-titleOptionWidget-hasImage { filter: unset; } .mw-widget-titleWidget-menu-withImages .mw-widget-titleOptionWidget.oo-ui-iconElement > .oo-ui-iconElement-icon:not(.mw-widget-titleOptionWidget-hasImage) { background-color: var(--wiki-content-text-mix-color-95); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-text-mix-color-95) 90%, var(--wiki-content-dynamic-color)); filter: unset; } .ve-ui-desktopContext .ve-ui-linkContextItem .ve-ui-linkContextItem-label .ve-ui-linkContextItem-label-preview { color: var(--wiki-content-text-mix-color); } .ve-ui-toolbarDialog { background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 5%, transparent); } .ve-ce-languageAnnotation { background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 20%, transparent); border-color: var(--wiki-content-link-color); } .mw-widget-mediaResultWidget-overlay { box-shadow: inset 0 0 0 1px var(--wiki-content-border-color); } .mw-widget-mediaResultWidget .mw-widget-mediaResultWidget-nameLabel { color: #fff; } .oo-ui-processDialog-actions-safe .oo-ui-widget-enabled.oo-ui-iconElement:not(.oo-ui-labelElement) > .oo-ui-buttonElement-button { background-color: transparent; border-right-color: var(--wiki-accent-color); /* fallback */ border-right-color: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); } .oo-ui-selectFileWidget-dropTarget { background-color: var(--wiki-content-background-color); border-color: var(--wiki-content-border-color); } .oo-ui-selectFileWidget.oo-ui-widget-enabled.oo-ui-selectFileWidget-dropTarget { background-color: var(--wiki-content-background-color); } .oo-ui-selectFileWidget.oo-ui-widget-enabled.oo-ui-selectFileWidget-dropTarget:hover { border-color: var(--wiki-content-text-mix-color); } .oo-ui-selectFileWidget.oo-ui-widget-enabled.oo-ui-selectFileWidget-canDrop.oo-ui-selectFileWidget-dropTarget, .oo-ui-selectFileWidget.oo-ui-widget-enabled.oo-ui-selectFileWidget-canDrop .oo-ui-selectFileInputWidget-info > .oo-ui-inputWidget-input { background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 10%, transparent); color: var(--wiki-accent-color); } .oo-ui-selectFileWidget.oo-ui-widget-disabled.oo-ui-selectFileWidget-dropTarget, .oo-ui-selectFileWidget.oo-ui-selectFileInputWidget-empty.oo-ui-widget-disabled.oo-ui-selectFileWidget-dropTarget { background-color: var(--wiki-content-text-mix-color-95); border-color: var(--wiki-content-dynamic-color--secondary); } .mw-upload-bookletLayout-filePreview { background-color: var(--wiki-content-background-color--secondary); } .ve-ui-mwMediaDialog-panel-imageinfo-details { color: var(--wiki-content-text-mix-color); } .oo-ui-textInputWidget.oo-ui-widget-disabled .oo-ui-inputWidget-input { -webkit-text-fill-color:var(--wiki-content-text-color); /* fallback */ -webkit-text-fill-color: color-mix(in srgb, var(--wiki-content-text-color) 50%, transparent); } .oo-ui-optionWidget.oo-ui-widget-disabled { color: var(--wiki-content-text-mix-color); } .ve-ui-mwLanguagesPage-languages-table th, .ve-ui-mwLanguagesPage-languages-table td { border-bottom-color: var(--wiki-content-border-color); } .ve-ui-mwLanguagesPage-languages-table tr:nth-child(even) td { background: var(--wiki-content-background-color); } .ve-ui-mwLanguagesPage-languages-table tr:nth-child(odd) td { background: transparent; /* fallback */ background: color-mix(in srgb, var(--wiki-content-dynamic-color--secondary) 5%, transparent); } .ve-ui-targetWidget { border-color: var(--wiki-content-border-color); } .ve-ui-targetWidget:not(.oo-ui-pendingElement-pending) { background: var(--wiki-content-background-color); } .ve-ui-targetWidget-focused { border-color: var(--wiki-accent-color); box-shadow: inset 0 0 0 1px var(--wiki-accent-color); } .ve-ui-mwTransclusionOutlineTemplateWidget-sticky { background-color: var(--wiki-content-background-color); } .ve-ui-mwTransclusionOutlineTemplateWidget .ve-ui-mwTransclusionOutlineParameterWidget.oo-ui-optionWidget-highlighted { color: var(--wiki-content-dynamic-color); } .ve-ui-mwTransclusionOutlineTemplateWidget .ve-ui-mwTransclusionOutlineParameterWidget.ve-ui-mwTransclusionOutlineParameterWidget-activePage, .ve-ui-mwTransclusionOutlineTemplateWidget .ve-ui-mwTransclusionOutlineParameterWidget.ve-ui-mwTransclusionOutlineParameterWidget-activePage:hover, .ve-ui-mwTransclusionOutlineTemplateWidget .ve-ui-mwTransclusionOutlineParameterWidget.ve-ui-mwTransclusionOutlineParameterWidget-activePage.oo-ui-optionWidget-highlighted { color: var(--wiki-accent-color); } .ve-ui-mwTransclusionOutlineTemplateWidget-no-template-parameters { color: var(--wiki-content-text-mix-color); } .ve-ui-mwTemplatePage-description { color: var(--wiki-content-text-mix-color); } .ve-ui-mwParameterPage-doc-required, .ve-ui-mwParameterPage-doc-deprecated, .ve-ui-mwParameterPage-inlineDescription .ve-ui-mwParameterPage-doc-example { color: var(--wiki-content-text-mix-color); } .ve-ui-expandableContent-fade { background: linear-gradient(to right, transparent 0, var(--wiki-content-background-color) 90%); } .ve-ui-expandableContent-toggle { background-color: var(--wiki-content-background-color); } .ve-ui-mwParameterPage-undocumentedLabel { color: var(--wiki-content-text-mix-color); } .oo-ui-fieldLayout-disabled > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label { color: var(--wiki-content-text-mix-color); } .ve-ui-mwLatexDialog-content .oo-ui-bookletLayout-stackLayout h3 { color: var(--wiki-content-text-mix-color); } .ve-ui-mwLatexPage-symbol { border-color: var(--wiki-content-border-color); } .ve-ui-mwGalleryDialog-highlighted-image { background-color: var(--wiki-content-background-color--secondary); } .ve-ui-mwHelpListToolGroup-tools-footer { border-color: var(--wiki-content-border-color); } .ve-ui-mwHelpListToolGroup-version-link, .ve-ui-mwHelpListToolGroup-version-date, .ve-ui-mwHelpPopupTool-version-label, .ve-ui-mwHelpPopupTool-version-link, .ve-ui-mwHelpPopupTool-version-date { color: var(--wiki-content-text-mix-color); } .ve-ui-mwSaveDialog-summary { background-color: var(--wiki-content-background-color); } .ve-ui-mwSaveDialog-options { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); } .ve-ui-mwSaveDialog-license { color: var(--wiki-content-text-mix-color); } .oo-ui-processDialog .oo-ui-actionWidget:not(.oo-ui-flaggedElement-progressive):not(.oo-ui-flaggedElement-destructive) > .oo-ui-buttonElement-button:hover, .oo-ui-processDialog .oo-ui-actionWidget:not(.oo-ui-flaggedElement-progressive):not(.oo-ui-flaggedElement-destructive) > .oo-ui-buttonElement-button:active { border-right-color: var(--wiki-accent-color); border-left-color: var(--wiki-accent-color); } .ve-ui-debugBar { border-color: var(--wiki-content-border-color); } .ve-ui-debugBar-commands-divider { border-color: var(--wiki-content-border-color); } .ve-ui-debugBar-dump > table { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); } .ve-ui-debugBar-dump td { background-color: var(--wiki-content-background-color); } .ve-ui-debugBar-dump th { color:var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 80%, transparent); text-shadow: 0 1px 1px var(--wiki-content-dynamic-color--inverted); } .ve-ui-debugBar-dump ol { color:var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 60%, transparent); } .ve-ui-debugBar-dump li .ve-ui-debugBar-dump-element, .ve-ui-debugBar-dump li .ve-ui-debugBar-dump-char, .ve-ui-debugBar-dump li .ve-ui-debugBar-dump-achar { background-color: var(--wiki-content-background-color--secondary); color: var(--wiki-content-dynamic-color); text-shadow: 0 1px 1px var(--wiki-content-dynamic-color--inverted); } .ve-ui-debugBar-dump li .ve-ui-debugBar-dump-element { background-color:var(--wiki-accent-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent); } .ve-ui-debugBar-dump li .ve-ui-debugBar-dump-char { background-color:var(--wiki-success-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-success-color) 20%, transparent); } .ve-ui-debugBar-dump li .ve-ui-debugBar-dump-achar { background-color:var(--wiki-warning-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-warning-color) 20%, transparent); } .ve-ui-debugBar-dump li .ve-ui-debugBar-dump-note { color: var(--wiki-content-text-mix-color); } .ve-ui-debugBar-filibuster { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-border-color); } .ve-ui-debugBar-transactions > ol > li { border-color: var(--wiki-content-border-color); } /******************* * End VisualEditor * ********************/ /************************** * Theme-based AbuseFilter * ***************************/ table.mw-abuselog-details { background: var(--wiki-content-background-color); border-color: var(--wiki-content-border-color); } table.mw-abuselog-details th, table.mw-abuselog-details td, div.mw-abusefilter-editor { border-color: var(--wiki-content-border-color); } table.mw-abuselog-details th { background: var(--wiki-content-background-color--secondary); } body td.mw-abusefilter-history-changed { background-color:var(--wiki-alert-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-alert-color) 20%, transparent); } /****************** * End AbuseFilter * *******************/ /************************************ * Theme-based Special:MultiPageEdit * *************************************/ :root { --jexcel-border-color:var(--wiki-content-border-color); /* this is defined by the extension but does not seem to be used anywhere. We override it just in case *shrug* */ } .jexcel, .jexcel_container.fullscreen .jexcel_content{ background-color:var(--wiki-content-background-color); border-bottom-color:var(--wiki-content-border-color); border-right-color:var(--wiki-content-border-color); } table.jexcel > tbody > tr > td:first-child, table.jexcel > thead, table.jexcel > thead > tr > td, table.jexcel > tbody > tr.selected > td:first-child, table.jexcel > thead > tr > td.selected { background-color:var(--wiki-content-background-color--secondary); } table.jexcel > tbody > tr.selected > td:first-child, table.jexcel > thead > tr > td.selected { background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-accent-color) 10%, transparent); } table.jexcel > thead > tr > td{ border-bottom-color:var(--wiki-content-border-color); } .jexcel > thead > tr > td.arrow-up, .jexcel > thead > tr > td.arrow-down { background:none; } .jexcel > thead > tr > td.arrow-up::after, .jexcel > thead > tr > td.arrow-down::after { display:inline-block; position:absolute; right:0; top:0; background-repeat:no-repeat; background-position:center right 5px; width:22px; height:100%; content:''; filter:brightness(50%) var(--wiki-icon-general-filter); } .jexcel > thead > tr > td.arrow-up::after { background-image:url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M7 14l5-5 5 5H7z' fill='gray'/%3E%3C/svg%3E"); } .jexcel > thead > tr > td.arrow-down::after { background-image:url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M7 10l5 5 5-5H7z' fill='gray'/%3E%3C/svg%3E"); } .jexcel > thead > tr:nth-child(2) > td { z-index:1; /* prevents overlapping the headings after scrolling on tall tables */ } .jexcel > tbody > tr > td { border-top-color:var(--wiki-content-text-mix-color-95); border-bottom-color:var(--wiki-content-text-mix-color-95); } .jexcel > tbody > tr > td.readonly { color:var(--wiki-content-text-mix-color); } .jexcel_content { scrollbar-color:var(--wiki-content-text-mix-color) transparent; /* we need this important to override inline styling */ box-shadow:var(--wiki-content-dynamic-color--secondary--inverted) 2px 2px 5px 0.1px !important; } .jexcel .highlight { background-color: transparent; /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 5%, transparent); } .jexcel .highlight-top { border-top-color:var(--wiki-content-text-mix-color); box-shadow:0px -1px var(--wiki-content-dynamic-color--secondary--inverted); } .jexcel .highlight-left { border-left-color:var(--wiki-content-text-mix-color); box-shadow:-1px 0px var(--wiki-content-dynamic-color--secondary--inverted); } .jexcel .highlight-top.highlight-left { box-shadow:-1px -1px var(--wiki-content-dynamic-color--secondary--inverted); } .jexcel .highlight-right { border-right-color:var(--wiki-content-text-mix-color); } .jexcel .highlight-bottom { border-bottom-color:var(--wiki-content-text-mix-color); } .jexcel .jexcel_column_filter { background:none; } .jexcel .jexcel_column_filter::after { display:inline-block; position:absolute; right:0; top:0; background-repeat:no-repeat; background-position:top 50% right 5px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='gray' width='18px' height='18px'%3E%3Cpath d='M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E"); width:20px; height:100%; content:''; filter:brightness(50%) var(--wiki-icon-general-filter); } .jexcel_pagination > div > div { background-color:var(--wiki-accent-color); /* we need this important to override a built-in one */ color:var(--wiki-accent-label-color) !important; } .jexcel_page_selected { background:linear-gradient(to bottom,var(--wiki-accent-color) 0%,var(--wiki-accent-color--hover) 100%); /* we need this important to override a built-in one */ border:1px solid var(--wiki-content-border-color) !important; } /**************************** * End Special:MultiPageEdit * *****************************/ /*********************** * Theme-based msupload * ************************/ #msupload-div, #msupload-list .file { background-color:var(--wiki-content-background-color); border-color:var(--wiki-content-border-color); } #msupload-select { filter:brightness(0) var(--wiki-icon-to-link-filter); } #msupload-dropzone { border-color:var(--wiki-content-border-color); color:var(--wiki-content-text-color); } .drop-over { background-color:var(--wiki-accent-color); color:var(--wiki-accent-label-color) !important; } #msupload-bottom { border-color:var(--wiki-content-border-color); } #msupload-bottom #msupload-files { padding-left:0; background: none; } #msupload-bottom #msupload-files::before { display:inline-block; background: url(/extensions/MsUpload/resources/images/msu-upload-icon.png?bdd61) no-repeat 0 0; background-position:left center; height:22px; width:25px; content:''; vertical-align: top; filter:var(--wiki-icon-general-filter); } #msupload-list .file .file-size { color: var(--wiki-content-text-mix-color); } #msupload-div a { color: var(--wiki-content-link-color); } #msupload-list .file .file-name:hover { background-color: var(--wiki-content-dynamic-color--inverted); } #msupload-list .file .file-name-input { background: var(--wiki-content-dynamic-color--inverted); } #msupload-list .file .file-warning { color: var(--wiki-warning-color); } /*************************** * End theme-based msupload * ****************************/ /***************************** * Theme-based commentstreams * ******************************/ .cs-title-edit-field { border-color:var(--wiki-accent-color); } .cs-title-edit-field::placeholder, .view-dark .cs-body-edit-field::placeholder { color: var(--wiki-content-text-mix-color); } .cs-edit-box , .cs-expanded .cs-comment-header { background-color: var(--wiki-content-background-color--secondary); border-color:var(--wiki-content-border-color); } .cs-target-comment .cs-comment-header { border-color:var(--wiki-accent-color); } .cs-comment-author a { color: var(--wiki-content-link-color); } .cs-comment-details { color:var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 95%, transparent); } .cs-comment-author-anonymous { color:var(--wiki-content-text-color); /* fallback */ color:color-mix(in srgb, var(--wiki-content-text-color) 95%, transparent); } .cs-comment { border:1px solid var(--wiki-content-border-color); } .cs-comment-body { padding:0 5px; } /********************************* * End theme-based commentstreams * **********************************/ /************************ * Theme-based checkuser * *************************/ .mw-datatable.ext-checkuser-investigate-table tr:hover td { background-color:var(--wiki-content-background-color); } .mw-datatable.ext-checkuser-investigate-table th { background-color:var(--wiki-content-background-color--secondary); } .ext-checkuser-investigate-table.mw-datatable.ext-checkuser-investigate-table-pinned .ext-checkuser-investigate-table-row-pinned td, .ext-checkuser-investigate-table.mw-datatable.ext-checkuser-investigate-table-pinned .ext-checkuser-investigate-table-row-pinned-data-match td, .ext-checkuser-investigate-table.mw-datatable:not(.ext-checkuser-investigate-table-pinned) .ext-checkuser-investigate-table-row-hover-data-match td, .ext-checkuser-investigate-table.mw-datatable:not(.ext-checkuser-investigate-table-pinned) tr:hover td{ background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-warning-color) 10%, transparent); } .ext-checkuser-investigate-table.mw-datatable.ext-checkuser-investigate-table-pinned .ext-checkuser-investigate-table-row-pinned td.ext-checkuser-investigate-table-cell-pinned, .ext-checkuser-investigate-table.mw-datatable.ext-checkuser-investigate-table-pinned .ext-checkuser-investigate-table-row-pinned-data-match td.ext-checkuser-investigate-table-cell-pinned, .ext-checkuser-investigate-table.mw-datatable.ext-checkuser-investigate-table-pinned .ext-checkuser-investigate-table-row-pinned td.ext-checkuser-investigate-table-cell-pinned-data-match, .ext-checkuser-investigate-table.mw-datatable.ext-checkuser-investigate-table-pinned .ext-checkuser-investigate-table-row-pinned-data-match td.ext-checkuser-investigate-table-cell-pinned-data-match, .ext-checkuser-investigate-table.mw-datatable:not(.ext-checkuser-investigate-table-pinned) tr td.ext-checkuser-investigate-table-cell-hover-data-match, .ext-checkuser-investigate-table.mw-datatable:not(.ext-checkuser-investigate-table-pinned) tr td:hover.ext-checkuser-investigate-table-cell-pinnable { background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-warning-color) 40%, transparent); } .ext-checkuser-investigate-copy-message.oo-ui-messageWidget.oo-ui-messageWidget-block.oo-ui-flaggedElement-notice { background-color:var(--wiki-content-background-color--secondary); border-color:var(--wiki-content-border-color); } .mw-special-Investigate .ext-checkuser-investigate-subtitle-fieldset { background-color:var(--wiki-content-background-color--secondary); } /**************** * End checkuser * *****************/ /*************************** * Theme-based SearchDigest * ****************************/ .searchdigest-stats-table { border-color: var(--wiki-content-border-color); border-collapse: collapse; } .searchdigest-stats-table thead th, .searchdigest-stats-table tr:not(:last-child) th, .searchdigest-stats-table tr:not(:last-child) td { border-bottom-color: var(--wiki-content-border-color); } .searchdigest-stats-table thead th:last-child, .searchdigest-stats-table td { border-left-color: var(--wiki-content-border-color); } .searchdigest-stats-table thead tr { background: var(--wiki-content-background-color--secondary); } /******************* * End SearchDigest * ********************/ /**************************** * Extension:RelatedArticles * *****************************/ .client-js .read-more-container { min-height:unset; } @media (min-width: 1000px) { .client-js .read-more-container { min-height:calc( 80px /*card height*/ + 10px /*card margin*/ + 1em /*container padding*/ + 0.3em /*card-list margin*/ + 0.8em /*h2 font-size*/ + 1em /*h2 padding*/ + 0.6em /*h2 margin*/ + 1px /*container border*/ ); } } .ext-related-articles-card-list .ext-related-articles-card { background-color:var(--wiki-content-background-color); } .ext-related-articles-card-list .ext-related-articles-card, .ext-related-articles-card-list .ext-related-articles-card + .ext-related-articles-card { /* your guess is as good as mine for why they did this */ border-color:var(--wiki-content-border-color); /* fallback */ border-color: color-mix(in srgb, var(--wiki-content-border-color) 20%, transparent); } .ext-related-articles-card-list .ext-related-articles-card-thumb { background-color:var(--wiki-content-background-color--secondary); } .ra-read-more h2 { color:var(--wiki-body-dynamic-color--secondary); } .ext-related-articles-card-list h3 a { color:var(--wiki-content-heading-color); } .ext-related-articles-card-list h3::after { background-image: linear-gradient(to right,transparent,var(--wiki-content-background-color) 50%); } .ext-related-articles-card-list .ext-related-articles-card-extract { color:var(--wiki-content-text-color); /* fallback */ color: color-mix(in srgb, var(--wiki-content-text-color) 50%, transparent); } /* removed background image and use a mask image instead */ .ext-related-articles-card-list .ext-related-articles-card-thumb-placeholder { position:relative; background-image:none; } .ext-related-articles-card-list .ext-related-articles-card-thumb-placeholder::after { position:absolute; width:100%; height:100%; top:0; left:0; content:''; --mask-image: url("/extensions/RelatedArticles/resources/ext.relatedArticles.readMore/article.svg?3c572"); --mask-size: 40px; --mask-repeat: no-repeat; --mask-position: center; -webkit-mask: var(--mask-image); mask: var(--mask-image); -webkit-mask-size: var(--mask-size); mask-size: var(--mask-size); -webkit-mask-repeat: var(--mask-repeat); mask-repeat: var(--mask-repeat); -webkit-mask-position: var(--mask-position); mask-position: var(--mask-position); background-color:var(--wiki-content-text-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-text-color) 75%, transparent); } /**/ /* this simulates mw-footer having a top border */ .read-more-container { border-bottom: var(--wiki-content-border-width, 1px) solid var(--wiki-content-border-color); } @media screen and (min-width: 720px) { .read-more-container { margin-right:1em; } } /******************************** * End Extension:RelatedArticles * *********************************/ /******************* * Extension:Popups * ********************/ .mwe-popups { box-shadow:0 30px 90px -20px rgba(0,0,0,0.3),0 0 1px 1px transparent; /* fallback */ box-shadow: 0 30px 90px -20px rgba(0,0,0,0.3),0 0 1px 1px color-mix(in srgb, var(--wiki-content-border-color) 5%, transparent); } .mwe-popups, .mwe-popups .mwe-popups-container { background-color:var(--wiki-content-background-color); color:var(--wiki-content-text-color); } .mwe-popups .mwe-popups-extract { color:var(--wiki-content-text-color); } .mwe-popups .mwe-popups-extract[dir="ltr"]::after { background-image: linear-gradient(to right,transparent,var(--wiki-content-background-color) 50%); } .mwe-popups.flipped-y::before, .mwe-popups.flipped-x-y::before, .mwe-popups.mwe-popups-image-pointer::before, .mwe-popups.mwe-popups-image-pointer.flipped-x::before, .mwe-popups.mwe-popups-no-image-pointer::before, .mwe-popups.flipped-x.mwe-popups-is-tall::before, .mwe-popups.flipped-x-y.mwe-popups-is-tall::before { border-color:var(--wiki-content-border-color); } .mwe-popups.flipped-y::after, .mwe-popups.flipped-x-y::after, .mwe-popups.mwe-popups-image-pointer::after, .mwe-popups.mwe-popups-image-pointer.flipped-x::after, .mwe-popups.mwe-popups-no-image-pointer::after, .mwe-popups.flipped-x-y.mwe-popups-is-tall::after { border-color:var(--wiki-content-background-color); } .popups-icon { position:relative; background-position: center; background-repeat: no-repeat; background-size: calc(max(1.4285714em,20px)); min-width: 20px; min-height: 20px; width: 1.4285714em; height: 1.4285714em; display: inline-block; vertical-align: text-bottom; } .popups-icon--preview-generic, .popups-icon--settings, .popups-icon--infoFilled, .popups-icon--infoFilled:lang(ar), .popups-icon--close, .popups-icon--reference-generic, .popups-icon--reference-book, .popups-icon--preview-disambiguation { background-image:none; } .popups-icon::after { position:absolute; width:100%; height:100%; top:0; left:0; content:''; -webkit-mask-image:var(--mask-image, none); mask-image:var(--mask-image, none); -webkit-mask-repeat:var(--mask-repeat, no-repeat); mask-repeat:var(--mask-repeat, no-repeat); -webkit-mask-size:var(--mask-size, calc(max(1.4285714em,20px))); mask-size:var(--mask-size, calc(max(1.4285714em,20px))); -webkit-mask-position:var(--mask-position, center); mask-position:var(--mask-position, center); background-color:var(--mask-color, currentColor); background-color:var(--mask-color, currentColor); } .popups-icon--preview-generic::after { --mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E %3Ctitle%3E sad face %3C/title%3E %3Cpath d=%22M2 0a2 2 0 0 0-2 2v18l4-4h14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm4 4c1.336 0 2.007 1.617 1.06 2.56-.943.947-2.56.276-2.56-1.06A1.5 1.5 0 0 1 6 4zm8 0c1.336 0 2.007 1.617 1.06 2.56-.943.947-2.56.276-2.56-1.06A1.5 1.5 0 0 1 14 4zm-4 5c2.61 0 4.83.67 5.65 3H4.35C5.17 9.67 7.39 9 10 9z%22/%3E %3C/svg%3E"); } .popups-icon--settings::after { --mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><g transform=\"translate(10 10)\"><path id=\"cdx-icon-settings-a\" d=\"M1.5-10h-3l-1 6.5h5m0 7h-5l1 6.5h3\"/><use xlink:href=\"%23cdx-icon-settings-a\" transform=\"rotate(45)\"/><use xlink:href=\"%23cdx-icon-settings-a\" transform=\"rotate(90)\"/><use xlink:href=\"%23cdx-icon-settings-a\" transform=\"rotate(135)\"/></g><path d=\"M10 2.5a7.5 7.5 0 000 15 7.5 7.5 0 000-15v4a3.5 3.5 0 010 7 3.5 3.5 0 010-7\"/></svg>"); } .popups-icon--infoFilled::after { --mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zM9 5h2v2H9zm0 4h2v6H9z\"/></svg>"); } .popups-icon--infoFilled:lang(ar)::after { --mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"M8 19a1 1 0 001 1h2a1 1 0 001-1v-1H8zm9-12a7 7 0 10-12 4.9S7 14 7 15v1a1 1 0 001 1h4a1 1 0 001-1v-1c0-1 2-3.1 2-3.1A7 7 0 0017 7z\"/></svg>"); } .popups-icon--close::after { --mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"m4.34 2.93 12.73 12.73-1.41 1.41L2.93 4.35z\"/><path d=\"M17.07 4.34 4.34 17.07l-1.41-1.41L15.66 2.93z\"/></svg>"); } .popups-icon--reference-generic::after { --mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"m15 10-2.78-2.78L9.44 10V1H5a2 2 0 00-2 2v14a2 2 0 002 2h10a2 2 0 002-2V3a2 2 0 00-2-2z\"/></svg>"); } .popups-icon--reference-book::after { --mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"M15 2a7.65 7.65 0 00-5 2 7.65 7.65 0 00-5-2H1v15h4a7.65 7.65 0 015 2 7.65 7.65 0 015-2h4V2zm2.5 13.5H14a4.38 4.38 0 00-3 1V5s1-1.5 4-1.5h2.5z\"/><path d=\"M9 3.5h2v1H9z\"/></svg>"); } .popups-icon--reference-journal::after { --mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"M2 18.5A1.5 1.5 0 003.5 20H5V0H3.5A1.5 1.5 0 002 1.5zM6 0v20h10a2 2 0 002-2V2a2 2 0 00-2-2zm7 8H8V7h5zm3-2H8V5h8z\"/></svg>"); } .popups-icon--reference-news::after { --mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"M5 2a2 2 0 00-2 2v12a1 1 0 01-1-1V5h-.5A1.5 1.5 0 000 6.5v10A1.5 1.5 0 001.5 18H18a2 2 0 002-2V4a2 2 0 00-2-2zm1 2h11v4H6zm0 6h6v1H6zm0 2h6v1H6zm0 2h6v1H6zm7-4h4v5h-4z\"/></svg>"); } .popups-icon--reference-web::after { --mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"M2 2a2 2 0 00-2 2v12a2 2 0 002 2h16a2 2 0 002-2V4a2 2 0 00-2-2zm2 1.5A1.5 1.5 0 112.5 5 1.5 1.5 0 014 3.5zM18 16H2V8h16z\"/></svg>"); } .popups-icon--preview-disambiguation::after { --mask-image: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"%23202122\"><path d=\"M7 0a2 2 0 00-2 2h9a2 2 0 012 2v12a2 2 0 002-2V2a2 2 0 00-2-2z\"/><path d=\"M13 20a2 2 0 002-2V5a2 2 0 00-2-2H4a2 2 0 00-2 2v13a2 2 0 002 2zM9 5h4v5H9zM4 5h4v1H4zm0 2h4v1H4zm0 2h4v1H4zm0 2h9v1H4zm0 2h9v1H4zm0 2h9v1H4z\"/></svg>"); } /*********************** * End Extension:Popups * ************************/ /********************* * Mobile adjustments * **********************/ /* Responsive Special:UserRights */ #mw-userrights-table-outer input#wpReason { width:100%; max-width:33.5em; } @media screen and (max-width:720px) { :root { --wiki-content-right-margin: 0px; --wiki-content-padding:0.5rem; --wiki-navigation-right-margin: 1px; --wiki-navigation-left-margin: 0px; --wiki-navigation-top-padding: 5px; --wiki-navigation-bottom-padding:0px; --wiki-navigation-height:2rem; --wiki-navigation-search-height:2.15rem; --wiki-navigation-search-margin:0.5rem; --wiki-logo-height: 80px; --wiki-logo-width: 100%; --wiki-logo-margin: 10px; --wiki-head-height: calc(var(--wiki-logo-height) + (var(--wiki-logo-margin) * 2) + var(--wiki-navigation-height) + var(--wiki-navigation-top-padding) + var(--wiki-navigation-bottom-padding)); --wiki-head-icon-padding: 0.25rem; --wiki-head-icon-size: calc(var(--wiki-navigation-height) - var(--wiki-head-icon-padding) * 2); --wiki-sidebar-background-opacity: var(--wiki-content-background-opacity); --wiki-menu-margin: 0.2rem; --wiki-menu-top-offset: calc(var(--wiki-head-height) + var( --wikigg-header-height ) + var(--wiki-navigation-bottom-padding) + var(--wiki-navigation-search-margin)); --wiki-sidebar-portal-spacing:0px; } #mw-page-base, #mw-head-base { height:var(--wiki-head-height); } #mw-page-base { padding-top: var( --wikigg-header-height ); } #mw-head-base { margin-top:calc(var(--wiki-head-height) * -1); } #p-logo, #p-logo a { height: var(--wiki-logo-height); width: var(--wiki-logo-width); } #p-logo { position:absolute; background:none; padding:0; left:0; margin:var(--wiki-logo-margin) 0; transform:none; top:calc(var(--wikigg-header-height)); } .mw-wiki-logo { background-size:contain; } #mw-head { left:0; width:100%; top:calc(var(--wiki-head-height) + var( --wikigg-header-height ) - var(--wiki-navigation-height)); } #left-navigation, #right-navigation { margin-top: 0; height:var(--wiki-navigation-height); } #right-navigation { margin-right: var(--wiki-navigation-right-margin); } div#left-navigation { margin-left: var(--wiki-navigation-left-margin); } div#right-navigation div#p-search { margin-right: 0; } .vector-menu-tabs-legacy, .vector-menu-dropdown { height:var(--wiki-navigation-height); } .vector-menu-tabs-legacy li a { height:var(--wiki-navigation-height); } #p-cactions { padding-bottom: 0px; } #p-search { position: absolute; left: 50%; transform:translateX(-50%); top: calc(var(--wiki-navigation-height) + var(--wiki-navigation-bottom-padding)); margin-left:0px; z-index: 4 /** above #mw-panel **/; } #simpleSearch { width: calc(100vw - var(--wiki-navigation-right-margin) - var(--wiki-navigation-left-margin)); } .vector-search-box-input { height:var(--wiki-navigation-search-height); } .vector-search-box form { margin:var(--wiki-navigation-search-margin) 0px; } .mw-body, .mw-footer { border-left-width: 0; border-right-width: 0; } .mw-body { margin-top: 0; padding-top:calc(var(--wiki-content-padding) + var(--wiki-navigation-search-height) + var(--wiki-navigation-bottom-padding) + (var(--wiki-navigation-search-margin) * 2)); } #mw-data-after-content { margin-left:0; } #mw-panel { position: unset; width:100%; margin: 0px auto; padding: 0; top: 0; background-position:bottom right, top center; background-size:100% 0.5em, 100% 100%; float:unset; } .vector-menu-dropdown .vector-menu-content { right: 0; left: unset; } #mw-panel .vector-menu-portal { box-sizing:border-box; border-left-width:0; border-right-width:0; background-color: var(--wiki-sidebar-background-color); } table.wikitable, table.responsive-table { display: block; overflow-x: auto; border: 0; } .mw-installed-software { word-break: unset; } .gallerybox, .gallerybox > div, .gallerybox .thumb { max-width:100%; } /* disable float on RecentChanges legend */ .mw-changeslist-legend { float: none; margin: 0 auto; } /* advanced search options */ #mw-searchoptions table { float: none; } #mw-searchoptions table td { display: block; } /* popup when clicking the download button in multimediaviewer */ .mw-mmv-dialog { width: unset; } /* turn math elements into scroll blocks unless they're an immediate child of a span */ :not(span) > math.mwe-math-element { overflow: auto hidden; max-width: 100%; } /* Expandable mobile navigation panel */ body.has-vector-mobile-menu #mw-panel { position: absolute; top: var(--wiki-menu-top-offset); z-index: 3; } body.has-vector-mobile-menu #mw-panel .mobile-nav-toggle { position: relative; cursor: pointer; z-index: 5; display: block; appearance: none; border: 1px solid var(--wiki-content-border-color); margin-left: var(--wiki-navigation-search-margin); margin-bottom: 2px; background-color: var(--wiki-content-background-color--secondary); } body.has-vector-mobile-menu #mw-panel .vector-menu-portal { display: none; } body.has-vector-mobile-menu #mw-panel .mobile-nav-toggle.nav--expanded ~ .vector-menu-portal { display: block; } body.has-vector-mobile-menu #mw-navigation #mw-panel .vector-menu-portal { text-align: left; font-size: 110%; border-left-width: var(--wiki-sidebar-border-width, 1px); border-right-width: var(--wiki-sidebar-border-width, 1px); margin-inline: calc(var(--wiki-navigation-left-margin) + var(--wiki-menu-margin)); } body.has-vector-mobile-menu #mw-navigation #mw-panel .vector-menu-portal + .vector-menu-portal { border-top-width: 0; } body.has-vector-mobile-menu #mw-navigation #mw-panel .vector-menu-portal:not(:last-child) { border-bottom-width: 0; } body.has-vector-mobile-menu #mw-panel .vector-menu-content-list { display: flex; flex-wrap: wrap; } body.has-vector-mobile-menu #mw-panel .vector-menu-content-list a { display: block; padding: 0.2rem 0.5rem; border: 1px solid transparent; } body.has-vector-mobile-menu #mw-panel .vector-menu-content-list a:hover { border-color: var(--wiki-content-link-color); } body.has-vector-mobile-menu #mw-panel a.feedlink { padding-left: 16px; } body.has-vector-mobile-menu #mw-panel #p-navigation-label { display: block; } body.has-vector-mobile-menu #p-logo { /* Logo's a part of the sidebar panel, which uses relative positioning for the expandable button. Offset the logo appropriately. */ top: calc( -1 * var( --wiki-menu-top-offset ) + var( --wikigg-header-height ) ); } .mobile-nav-toggle { --icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M1 3v2h18V3zm0 8h18V9H1zm0 6h18v-2H1z'/%3E%3C/svg%3E%0A"); } body.has-vector-mobile-menu #p-tb .mw-list-item > a { display: inline-flex; } body.has-vector-mobile-menu #p-tb .vector-menu-content-list { flex-direction: row; } /* Search adjustments for the expandable menu */ body.has-vector-mobile-menu #p-search { /* reposition to the right when mobile sidebar menu is active */ left: calc(var(--wiki-navigation-search-margin) * 3 + var(--wiki-head-icon-size) + var(--wiki-head-icon-padding)); right: calc(var(--wiki-navigation-right-margin) + var(--wiki-navigation-search-margin)); transform: none; } body.has-vector-mobile-menu #simpleSearch { width: 100%; margin: 0 auto; } /* icon navbar tabs + expandable nav panel icon */ #mw-head { --icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' %3F%3E%3Csvg fill='none' height='24' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h24v24H0z' fill='none' stroke='none'/%3E%3Cpath d='M4 4l4 16l4 -14l4 14l4 -16'/%3E%3C/svg%3E"); } #mw-head .vector-menu-tabs .mw-list-item a, #mw-head .vector-menu-dropdown .vector-menu-heading, #mw-panel .mobile-nav-toggle { line-height:var(--wiki-head-icon-size); width: var(--wiki-head-icon-size); /* same as line height */ height: var(--wiki-head-icon-size); box-sizing: content-box; padding: var(--wiki-head-icon-padding); color: transparent; /**<< for watch/unwatch, the text of <a> will be plain 'watch'/'unwatch' without <span> after clicking. **/ } #mw-head .vector-menu-tabs .mw-list-item a::before, #mw-head .vector-menu-dropdown .vector-menu-heading::before, #mw-panel .mobile-nav-toggle::before { content: ""; display: block; position: unset; background-image: none; width: var(--wiki-head-icon-size); height: var(--wiki-head-icon-size); margin: 0; --mask: var(--icon) no-repeat; -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-position: center center; mask-position: center center; background-color: var(--wiki-navigation-text-color); } #mw-head .vector-menu-tabs .mw-list-item a:hover::before, #mw-head .vector-menu-dropdown .vector-menu-heading:hover::before, #mw-panel .mobile-nav-toggle:hover::before, #mw-panel .mobile-nav-toggle.nav--expanded::before { background-color: var(--wiki-navigation-text-color--hover); } #mw-head .vector-menu-tabs .mw-list-item.selected a::before { background-color: var(--wiki-navigation-selected-text-color); } #mw-head .vector-menu-tabs .mw-list-item a span, #mw-head .vector-menu-dropdown .vector-menu-heading span { display: none; } #mw-head .vector-menu-dropdown .vector-menu-heading::after { display: none; } #ca-ve-edit, #ca-edit { --icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='m16.77 8 1.94-2a1 1 0 0 0 0-1.41l-3.34-3.3a1 1 0 0 0-1.41 0L12 3.23zM1 14.25V19h4.75l9.96-9.96-4.75-4.75z'/%3E%3C/svg%3E%0A"); } #ca-ve-edit + #ca-edit { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20' aria-hidden='true'%3E%3C!----%3E%3Cg%3E%3Cpath d='M1 3v14h3v-2H3V5h1V3zm4 0v14h4v-2H7V5h2V3zm11 0v2h1v10h-1v2h3V3zm-5 0v2h2v10h-2v2h4V3z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E"); } #ca-view, #ca-view-foreign { --icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M10 14.5a4.5 4.5 0 1 1 4.5-4.5 4.5 4.5 0 0 1-4.5 4.5M10 3C3 3 0 10 0 10s3 7 10 7 10-7 10-7-3-7-10-7'/%3E%3Ccircle cx='10' cy='10' r='2.5'/%3E%3C/svg%3E"); } #left-navigation li[id^=ca-nstab-] { --icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3E article %3C/title%3E%3Cpath d='M5 1a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2zm0 3h5v1H5zm0 2h5v1H5zm0 2h5v1H5zm10 7H5v-1h10zm0-2H5v-1h10zm0-2H5v-1h10zm0-2h-4V4h4z'/%3E%3C/svg%3E%0A"); } #ca-history { --icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M9 6v5h.06l2.48 2.47 1.41-1.41L11 10.11V6z'/%3E%3Cpath d='M10 1a9 9 0 0 0-7.85 13.35L.5 16H6v-5.5l-2.38 2.38A7 7 0 1 1 10 17v2a9 9 0 0 0 0-18'/%3E%3C/svg%3E%0A"); } #ca-talk { --icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' %3F%3E%3Csvg id='Outlined' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle/%3E%3Cg id='Fill'%3E%3Cpath d='M26,12H24V6a3,3,0,0,0-3-3H6A3,3,0,0,0,3,6V24.41l5.12-5.12A1.05,1.05,0,0,1,8.83,19H12v3a3,3,0,0,0,3,3h8.17a1.05,1.05,0,0,1,.71.29L29,30.41V15A3,3,0,0,0,26,12ZM12,15v2H8.83a3,3,0,0,0-2.12.88L5,19.59V6A1,1,0,0,1,6,5H21a1,1,0,0,1,1,1v6H15A3,3,0,0,0,12,15ZM27,25.59l-1.71-1.71A3,3,0,0,0,23.17,23H15a1,1,0,0,1-1-1V15a1,1,0,0,1,1-1H26a1,1,0,0,1,1,1Z'/%3E%3C/g%3E%3C/svg%3E"); } #t-contributions { --icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' %3F%3E%3Csvg enable-background='new 0 0 32 32' id='Stock_cut' version='1.1' viewBox='0 0 32 32' xml:space='preserve' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdesc/%3E%3Cpath d='M27,12V5h-7v0 c0-2.209-1.791-4-4-4h0c-2.209,0-4,1.791-4,4v0H1v7h0c2.209,0,4,1.791,4,4v0c0,2.209-1.791,4-4,4h0v11h11v0c0-2.209,1.791-4,4-4h0 c2.209,0,4,1.791,4,4v0h7V20h0c2.209,0,4-1.791,4-4v0C31,13.791,29.209,12,27,12L27,12z' fill='none' stroke='%23000000' stroke-linejoin='round' stroke-miterlimit='10' stroke-width='2'/%3E%3C/svg%3E"); } #ca-addsection { --icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' %3F%3E%3Csvg id='Outlined' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle/%3E%3Cg id='Fill'%3E%3Cpolygon points='29 15 17 15 17 3 15 3 15 15 3 15 3 17 15 17 15 28 17 28 17 17 29 17 29 15'/%3E%3C/g%3E%3C/svg%3E"); } #ca-viewsource { --icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' %3F%3E%3Csvg height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='heroicon-ui' d='M20.59 12l-3.3-3.3a1 1 0 1 1 1.42-1.4l4 4a1 1 0 0 1 0 1.4l-4 4a1 1 0 0 1-1.42-1.4l3.3-3.3zM3.4 12l3.3 3.3a1 1 0 0 1-1.42 1.4l-4-4a1 1 0 0 1 0-1.4l4-4a1 1 0 0 1 1.42 1.4L3.4 12zm7.56 8.24a1 1 0 0 1-1.94-.48l4-16a1 1 0 1 1 1.94.48l-4 16z'/%3E%3C/svg%3E"); } #p-variants { --icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' %3F%3E%3Csvg id='Outlined' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle/%3E%3Cg id='Fill'%3E%3Cpath d='M16,2A14,14,0,1,0,30,16,14,14,0,0,0,16,2Zm8,13a24.28,24.28,0,0,0-.41-3.62c2.19.91,3.75,2.19,4.25,3.62Zm-2,0H17V10a20.9,20.9,0,0,1,4.34.63A20.26,20.26,0,0,1,22,15ZM17,8V4.19c1.43.5,2.71,2.06,3.62,4.25A24.28,24.28,0,0,0,17,8ZM15,4.19V8a24.28,24.28,0,0,0-3.62.41C12.29,6.25,13.57,4.69,15,4.19ZM15,10v5H10a20.26,20.26,0,0,1,.63-4.34A20.9,20.9,0,0,1,15,10ZM8,15H4.19c.5-1.43,2.06-2.71,4.25-3.62A24.28,24.28,0,0,0,8,15Zm0,2a24.28,24.28,0,0,0,.41,3.62C6.25,19.71,4.69,18.43,4.19,17Zm2,0h5v5a20.9,20.9,0,0,1-4.34-.63A20.26,20.26,0,0,1,10,17Zm5,7v3.84c-1.43-.5-2.71-2.06-3.62-4.25A24.28,24.28,0,0,0,15,24Zm2,3.84V24a24.28,24.28,0,0,0,3.62-.41C19.71,25.75,18.43,27.31,17,27.81ZM17,22V17h5a20.26,20.26,0,0,1-.63,4.34A20.9,20.9,0,0,1,17,22Zm7-5h3.84c-.5,1.43-2.06,2.71-4.25,3.62A24.28,24.28,0,0,0,24,17Zm2.87-6.12A15.11,15.11,0,0,0,23,9a15.11,15.11,0,0,0-1.85-3.87A12.12,12.12,0,0,1,26.84,10.88Zm-16-5.72A15.11,15.11,0,0,0,9,9a15.11,15.11,0,0,0-3.87,1.85A12.12,12.12,0,0,1,10.88,5.16Zm-5.72,16A15.11,15.11,0,0,0,9,23a15.11,15.11,0,0,0,1.85,3.87A12.12,12.12,0,0,1,5.16,21.12Zm16,5.72A15.11,15.11,0,0,0,23,23a15.11,15.11,0,0,0,3.87-1.85A12.12,12.12,0,0,1,21.12,26.84Z'/%3E%3C/g%3E%3C/svg%3E"); } #p-cactions { --icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Ccircle cx='3' cy='10' r='2'/%3E%3Ccircle cx='17' cy='10' r='2'/%3E%3C/svg%3E%0A"); } #ca-watch { --icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M20 7h-7L10 .5 7 7H0l5.46 5.47-1.64 7 6.18-3.7 6.18 3.73-1.63-7zm-10 6.9-3.76 2.27 1-4.28L3.5 8.5h4.61L10 4.6l1.9 3.9h4.6l-3.73 3.4 1 4.28z'/%3E%3C/svg%3E%0A"); } #ca-unwatch { --icon: url("data:image/svg+xml,%3C%3Fxml version='1.0'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' id='Outlined'%3E%3Cg style='fill:%23000000;fill-opacity:1' id='Fill'%3E%3Cpath style='fill:%23000000;fill-opacity:1' id='path1380' d='M 28.61,11.67 H 20 L 17.34,3.47 C 16.920093,2.1973942 15.119907,2.1973942 14.7,3.47 L 12,11.67 H 3.39 c -1.3409796,0.0031 -1.900508,1.71581 -0.82,2.51 l 7,5.07 -2.68,8.21 C 6.5980433,28.35747 7.2662365,29.278767 8.21,29.28 8.4953889,29.267666 8.7705436,29.170143 9,29 l 7,-5.07 7,5.07 c 0.236205,0.170386 0.518805,0.264586 0.81,0.27 0.943763,-0.0012 1.611957,-0.92253 1.32,-1.82 l -2.66,-8.21 7,-5.07 c 1.075277,-0.810084 0.486081,-2.522863 -0.86,-2.5 z' /%3E%3C/g%3E%3C/svg%3E"); } .vector-menu-tabs #ca-watch.icon a:hover::before, .vector-menu-tabs #ca-unwatch.icon a:hover::before { background-image:none; } /* RecentChanges - prevent overflow on long summaries */ .client-js .mw-changeslist ul, .client-js .mw-changeslist table.mw-enhanced-rc { margin-left:0; } .mw-changeslist-line-inner-comment, .mw-changeslist-line .comment { font-size:0.9em; } .mw-userlink { overflow-wrap:anywhere; } } /* Hide the expandable navigation button for desktop users */ .mobile-nav-toggle { display: none; } /************* * End mobile * **************/ /* All local skin customizations should go below this line */ ffd75794da470d0daf2889e14f41dce85ec9f54e MediaWiki:Common.css 8 226 250 2025-04-09T22:24:35Z ARTIFICER 564804 Importing default loadout css text/css /* CSS placed here will be applied to all skins */ :root{ /* start font settings */ --wiki-body-font-family: sans-serif; --wiki-heading-font-family: 'Linux Libertine','Georgia','Times',serif; --wiki-sidebar-heading-font-family: sans-serif; /* end font settings */ /* start design variables */ --wiki-sidebar-border-radius:0px; /* these two variables must have units specified even if 0, ignore the warning */ --wiki-sidebar-portal-spacing:0px; --wiki-content-border-width:1px; --wiki-sidebar-border-width:1px; /* end design variables */ } /* the rest of the variables will modify some type of color, either text color, background color, border color, etc. */ :root, /* Begin light styles, delete from here to "end light styles" if you don't want your wiki to support any light themes (remove from [[Mediawiki:Theme-definitions]] too, or ask wiki.gg staff for help doing this) */ /* FYI: .view- will affect any theme marked |kind=light, */ /* individual themes are prefixed with .theme- instead */ .view-light { /********************** * Probably edit these * [ LIGHT VIEW ] ***********************/ --wiki-body-background-color: #F6F6F6; --wiki-body-background-image: url(/images/8/80/Site-background.jpg); /* please find the file path by viewing the image directly (click the image from the File: page) */ --wiki-content-background-color: #ffffff; --wiki-content-background-opacity: 100%; --wiki-content-border-color: #a7d7f9; --wiki-content-link-color: #0645ad; /* if changing this, remember to change --wiki-icon-to-link-filter as well!!! */ /* [ LIGHT VIEW ] */ --wiki-accent-color: #3366cc; --wiki-accent-label-color: #ffffff; --wiki-accent-link-color: #D5FB51; --wiki-icon-to-link-filter: invert(20%) sepia(93%) saturate(2141%) hue-rotate(210deg) brightness(83%) contrast(103%); /* put your --wiki-content-link-color into https://mrpie5.gitlab.io/css-filter-generator/ */ /**/ /******************* * Maybe edit these * [ LIGHT VIEW ] ********************/ --wiki-body-background-position: top center; --wiki-body-background-size:cover; --wiki-body-background-repeat: no-repeat; --wiki-body-background-attachment: fixed; --wiki-content-background-color--secondary: color-mix(in srgb, var(--wiki-content-background-color) 96%, var(--wiki-content-dynamic-color)); --wiki-content-text-color: #111111; --wiki-content-link-color--visited: var(--wiki-content-link-color); --wiki-content-link-color--hover: var(--wiki-content-link-color); --wiki-content-redlink-color: #ba0000; --wiki-content-heading-color: var(--wiki-content-text-color); --wiki-accent-color--hover: color-mix(in srgb, var(--wiki-accent-color) 95%, var(--wiki-accent-label-color)); /* [ LIGHT VIEW ] */ --wiki-sidebar-background-color: var(--wiki-content-background-color); --wiki-sidebar-background-opacity: var(--wiki-content-background-opacity); --wiki-sidebar-border-color: var(--wiki-content-border-color); --wiki-sidebar-link-color: var(--wiki-content-link-color); --wiki-sidebar-link-color--hover: var(--wiki-content-link-color--hover); --wiki-sidebar-heading-color: var(--wiki-content-heading-color); /* [ LIGHT VIEW ] */ --wiki-navigation-background-color: var(--wiki-content-background-color--secondary); --wiki-navigation-background-color--secondary: var(--wiki-content-background-color); --wiki-navigation-border-color: var(--wiki-content-border-color); --wiki-navigation-text-color: var(--wiki-content-link-color); --wiki-navigation-text-color--hover: var(--wiki-content-link-color--hover); --wiki-navigation-selected-background-color: var(--wiki-content-background-color); --wiki-navigation-selected-border-color: var(--wiki-navigation-border-color); --wiki-navigation-selected-text-color: var(--wiki-content-text-color); /* [ LIGHT VIEW ] */ --wiki-neutral-color: var(--wiki-content-text-mix-color); --wiki-alert-color: #bf0017; --wiki-warning-color: #b05f30; --wiki-success-color: #0c742f; /**/ /*********************************** * Likely do not need to edit these * [ LIGHT VIEW ] ************************************/ --wiki-body-dynamic-color: #000000; --wiki-body-dynamic-color--inverted: #ffffff; --wiki-body-dynamic-color--secondary: #333333; --wiki-body-dynamic-color--secondary--inverted: #cccccc; --wiki-content-border-color--secondary: color-mix(in srgb, var(--wiki-content-border-color) 50%, transparent); --wiki-content-border-color--accent: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); --wiki-content-link-label-color: #ffffff; --wiki-content-dynamic-color: #000000; --wiki-content-dynamic-color--inverted: #ffffff; --wiki-content-dynamic-color--secondary: #333333; --wiki-content-dynamic-color--secondary--inverted: #cccccc; /* [ LIGHT VIEW ] */ --wiki-alert-label-color: #ffffff; --wiki-warning-label-color: #ffffff; --wiki-success-label-color: #ffffff; --wiki-icon-general-filter: ; /* do not set this to none, ignore the "unexpected token" error */ /**/ } /* end light styles */ /* Begin dark styles, delete from here to "end dark styles" if you don't want your wiki to support any dark themes (remove it from [[Mediawiki:Theme-definitions]] too, or ask wiki.gg staff for help doing this) */ /* FYI: .view- will affect any theme marked |kind=dark, */ /* individual themes are prefixed with .theme- instead */ .view-dark { /********************** * Probably edit these * [ DARK VIEW ] ***********************/ --wiki-body-background-color: #171717; --wiki-body-background-image: url(/images/c/c4/Site-background-dark.jpg); /* please find the file path by viewing the image directly (not at the File: page) */ --wiki-content-background-color: #202020; --wiki-content-background-opacity: 90%; --wiki-content-border-color: #991A51; --wiki-content-link-color: #6d8afb; /* if changing this, remember to change --wiki-icon-to-link-filter as well!!! */ /* [ DARK VIEW ] */ --wiki-accent-color: #ff4d9d; --wiki-accent-label-color: #000; --wiki-accent-link-color: #1e1e43; --wiki-icon-to-link-filter: invert(60%) sepia(70%) saturate(3715%) hue-rotate(206deg) brightness(101%) contrast(97%); /* put your --wiki-content-link-color into https://mrpie5.gitlab.io/css-filter-generator/ */ /**/ /******************* * Maybe edit these * [ DARK VIEW ] ********************/ --wiki-body-background-position: top center; --wiki-body-background-size:cover; --wiki-body-background-repeat: no-repeat; --wiki-body-background-attachment: fixed; --wiki-content-background-color--secondary: color-mix(in srgb, var(--wiki-content-background-color) 96%, var(--wiki-content-dynamic-color)); --wiki-content-text-color: #ededed; --wiki-content-link-color--visited: var(--wiki-content-link-color); --wiki-content-link-color--hover: var(--wiki-content-link-color); --wiki-content-redlink-color: #FC5B4F; --wiki-content-heading-color: var(--wiki-content-text-color); --wiki-accent-color--hover: color-mix(in srgb, var(--wiki-accent-color) 90%, var(--wiki-accent-label-color)); /* [ DARK VIEW ] */ --wiki-sidebar-background-color: var(--wiki-content-background-color); --wiki-sidebar-background-opacity: var(--wiki-content-background-opacity); --wiki-sidebar-border-color: var(--wiki-content-border-color); --wiki-sidebar-link-color: var(--wiki-content-link-color); --wiki-sidebar-link-color--hover: var(--wiki-content-link-color--hover); --wiki-sidebar-heading-color: var(--wiki-content-heading-color); /* [ DARK VIEW ] */ --wiki-navigation-background-color: var(--wiki-content-background-color--secondary); --wiki-navigation-background-color--secondary: var(--wiki-content-background-color); --wiki-navigation-border-color: var(--wiki-content-border-color); --wiki-navigation-text-color: var(--wiki-content-link-color); --wiki-navigation-text-color--hover: var(--wiki-content-link-color--hover); --wiki-navigation-selected-background-color: var(--wiki-content-background-color); --wiki-navigation-selected-border-color: var(--wiki-navigation-border-color); --wiki-navigation-selected-text-color: var(--wiki-content-text-color); /* [ DARK VIEW ] */ --wiki-neutral-color: var(--wiki-content-text-mix-color); --wiki-alert-color: #ff576a; --wiki-warning-color:#cf721c; --wiki-success-color: #13aa45; /**/ /*********************************** * Likely do not need to edit these * [ DARK VIEW ] ************************************/ --wiki-body-dynamic-color: #ffffff; --wiki-body-dynamic-color--inverted: #000000; --wiki-body-dynamic-color--secondary: #cccccc; --wiki-body-dynamic-color--secondary--inverted: #333333; --wiki-content-border-color--secondary: color-mix(in srgb, var(--wiki-content-border-color) 50%, transparent); --wiki-content-border-color--accent: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); --wiki-content-link-label-color: #000; --wiki-content-dynamic-color: #ffffff; --wiki-content-dynamic-color--inverted: #000000; --wiki-content-dynamic-color--secondary: #cccccc; --wiki-content-dynamic-color--secondary--inverted: #333333; /* [ DARK VIEW ] */ --wiki-alert-label-color: #000000; --wiki-warning-label-color: #000000; --wiki-success-label-color: #000000; --wiki-icon-general-filter: invert(100%); } /* End dark styles */ /************************************** * Shared styles * * You likely don't need to edit these * ***************************************/ :root{ --wiki-content-text-mix-color: color-mix(in srgb, var(--wiki-content-background-color), var(--wiki-content-text-color) 62%); --wiki-content-text-mix-color-95: color-mix(in srgb, var(--wiki-content-background-color) 95%, var(--wiki-content-text-color)); } /******************** * End shared styles * *********************/ /****************************** * Fallback for older browsers * * DONT EDIT THIS * *******************************/ @supports not (color:color-mix(in srgb, #000, transparent)) { .view-dark, .view-light, :root { --wiki-content-text-mix-color: var(--wiki-content-text-color); --wiki-content-text-mix-color-95: var(--wiki-content-background-color); --wiki-content-background-color--secondary: var(--wiki-content-dynamic-color--secondary--inverted); --wiki-content-border-color--secondary: var(--wiki-content-border-color); --wiki-content-border-color--accent: var(--wiki-accent-color); --wiki-accent-color--hover: var(--wiki-accent-color); } } /***************************** * End older browser fallback * ******************************/ /***************************** * PortableInfoboxes * ******************************/ :root { --pi-background: var(--wiki-content-background-color); --pi-secondary-background: var(--wiki-accent-color); --pi-secondary-background-label: var(--wiki-accent-label-color); --pi-border-color: color-mix(in srgb, var(--pi-secondary-background) 50%, transparent); } .portable-infobox .pi-title, .portable-infobox .pi-header { text-align:center; font-size:1.5em; background:var(--pi-secondary-background); /* fallback */ background:color-mix(in srgb, var(--pi-secondary-background) 75%, transparent); color:var(--pi-secondary-background-label); } .portable-infobox .pi-data { background:var(--wiki-content-background-color--secondary); } .portable-infobox .pi-image { padding: 8px; } .pi-image-thumbnail { max-width:100%; } .pi-caption { color: var(--wiki-content-text-mix-color); } .pi-section-navigation .pi-section-tab.pi-section-active, .pi-section-navigation .pi-section-tab.current, .pi-media-collection .pi-tab-link.current { background: var(--pi-secondary-background); color: var(--pi-secondary-background-label); } .pi-collapse > .pi-item:first-child { cursor: pointer; } /* overqualify these to overwrite normal content heading styles */ .mw-body .portable-infobox h2, .mw-body .portable-infobox h3 { border-bottom: 0; font-family: inherit; font-weight: 700; margin: 0; } /***************************** * End PortableInfoboxes * ******************************/ /******************* * Main page layout * ********************/ #mp-container { display:grid; gap:10px; } @media screen and (max-width:990px) { /* for mobile screens */ #mp-container{ grid-template-areas:var(--main-page-layout--mobile); grid-template-columns:var(--main-page-layout-columns--mobile,100%); } .mp-box.mp-hide-on-mobile { display:none; } } @media screen and (min-width:990px) and (max-width:1350px) { /* for narrow screens, between 990px and 1350px */ #mp-container { grid-template-areas:var(--main-page-layout--tablet); grid-template-columns:var(--main-page-layout-columns--tablet,1fr 1fr); } .mp-box.mp-hide-on-tablet { display:none; } } @media screen and (min-width:1350px) { /* for all other screens, 1350px and wider */ #mp-container { grid-template-areas:var(--main-page-layout--desktop); grid-template-columns:var(--main-page-layout-columns--desktop,2fr 1fr 2fr); } .mp-box.mp-hide-on-desktop { display:none; } } .mp-box { position:relative; display:flex; flex-flow:column nowrap; width: calc(100% - 2px); box-sizing: border-box; background:var(--wiki-content-background-color--secondary); /* fallback */ background:color-mix(in srgb, var(--wiki-content-background-color--secondary) 25%, transparent); border:1px solid var(--wiki-content-border-color); padding:0px; } .mp-body { height: 100%; display: flex; padding:0.5em; flex-flow: column nowrap; } .mp-box.centered-content .mp-body { height: 100%; display: flex; flex-flow: column nowrap; justify-content: space-evenly; } .mp-box.has-floating-image { display:block; } .mp-box.has-floating-image .mp-body { height:unset; display:block; } /* overqualified to override normal heading styles */ .mw-body .mp-box h2 { text-align:center; font-weight:bold; font-family:var(--wiki-heading-font-family); overflow: initial; border-bottom: 1px solid var(--wiki-content-border-color); font-size: 150%; margin: 0; padding: 5px 0; color:var(--wiki-content-heading-color); } #mp-box-welcome { text-align:center; position:relative; overflow:hidden; } #mp-box-welcome h2{ font-size: 200%; } #mp-welcome { display:flex; flex-flow:column nowrap; position: relative; height: 100%; z-index: 2; box-sizing: border-box; } #mp-welcome .welcome-subtitle { height: 100%; background:var(--wiki-content-dynamic-color--inverted); /* fallback */ background:color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 85%, transparent); padding:0.5em; } #mp-banner { position: absolute; width: 100%; height: 100%; filter: blur(5px); z-index: -1; background: url(/images/e/e0/MP_banner.jpg); background-size: cover; background-repeat: no-repeat; background-position: top center; } .view-dark #mp-banner { filter: blur(5px) brightness(50%); } .view-light #mp-banner { filter: blur(5px) contrast(50%); } /* [[Template:MP_link]] */ .mp-links { --gap:10px; } .mp-links > ul { display: flex; flex-flow: row wrap; justify-content: space-evenly; margin: 2px; gap:var(--gap); } .mp-links > ul > li { display:flex; flex-flow:column nowrap; align-items:stretch; text-align: center; box-sizing:border-box; flex: max(calc(50% - var(--gap)), 5em) 1 1; outline:1px solid var(--wiki-content-link-color); transition:0.1s ease-in; } .mp-links > ul > li:hover { background-color:var(--wiki-content-background-color); /* fallback */ background-color:color-mix(in srgb, var(--wiki-content-link-color) 20%, transparent); } .mp-links.columns-1 > ul > li {flex: max(calc(100% - var(--gap)), 5em) 1 1;} .mp-links.columns-2 > ul > li {flex: max(calc(50% - var(--gap)), 5em) 1 1;} .mp-links.columns-3 > ul > li {flex: max(calc((100% / 3) - var(--gap)), 5em) 1 1;} .mp-links.columns-4 > ul > li {flex: max(calc(25% - var(--gap)), 5em) 1 1;} .mp-links.columns-5 > ul > li {flex: max(calc(20% - var(--gap)), 5em) 1 1;} .mp-links.columns-6 > ul > li {flex: max(calc((100% / 6) - var(--gap)), 5em) 1 1;} .mp-links.columns-7 > ul > li {flex: max(calc((100% / 7) - var(--gap)), 5em) 1 1;} .mp-links.columns-max > ul > li {flex: max(calc(0% - var(--gap)), 5em) 1 1;} .mp-links > ul > li:hover a { text-decoration: underline; } .mp-links > ul > li > a { display: flex; align-items: center; justify-content: center; height:100%; flex:1 1 auto; box-sizing:border-box; padding:5px; } .mp-links > ul > li > a:first-child { height:100%; } .mp-links > ul > li > a:last-child:not(:first-child) { height:unset; } .mp-links.stretch, .mp-links.stretch > ul { height:100%; } .mp-links.side-image li { flex-flow:row nowrap; } .mp-links.plain > ul > li { outline-color:transparent; } /*********************** * End main page layout * ************************/ /********************************************************************************************************************* * Semantically-correct horizontal lists (for Module:Navbox, and they're more machine-readable than {{*}}-formatting) * **********************************************************************************************************************/ .hlist dl, .hlist ol, .hlist ul { margin: 0; padding: 0; } /* Display list items inline */ .hlist dd, .hlist dt, .hlist li { /* * don't trust the note that says margin doesn't work with inline * removing margin: 0 makes dds have margins again * We also want to reset margin-right in Minerva */ margin: 0; display: inline; } /* Display requested top-level lists inline */ .hlist.inline, .hlist.inline dl, .hlist.inline ol, .hlist.inline ul, /* Display nested lists inline */ .hlist dl dl, .hlist dl ol, .hlist dl ul, .hlist ol dl, .hlist ol ol, .hlist ol ul, .hlist ul dl, .hlist ul ol, .hlist ul ul { display: inline; } /* Hide empty list items */ .hlist .mw-empty-li { display: none; } /* TODO: :not() can maybe be used here to remove the later rule. naive test * seems to work. more testing needed. like so: */ .hlist dt:not(:last-child)::after { content: ":\20"; } .hlist dd:not(:last-child)::after, .hlist li:not(:last-child)::after { /* "space, Middle Dot, space" We use unicode numbers instead of the raw characters due to a Firefox encoding bug on unicode characters. The space is also encoded because raw spaces combined with a unicode number strips the spaces under some conditions such as single-line lists */ /* content: "\20\00B7\20"; font-weight: bold; */ /* "space &nbsp; β€’ &nbsp; space" There may (and likely) be an extra whitespace between <li>s, therefore we have to use a space character as last character of this sequence. By this way, the last space and the next whitespce will collapse as a single space, to make the whitespace on both sides of the middle dot the same width. */ content: "\20\A0\2022\A0\20"; font-weight: inherit; } /* Add parentheses around nested lists */ .hlist dd ol::before, .hlist dd ul::before, .hlist dd dl::before, .hlist dt ol::before, .hlist dt ul::before, .hlist dt dl::before, .hlist li ol::before, .hlist li ul::before, .hlist li dl::before { content: "\20("; font-weight: inherit; } .hlist dd ol::after, .hlist dd ul::after, .hlist dd dl::after, .hlist dt ol::after, .hlist dt ul::after, .hlist dt dl::after, .hlist li ol::after, .hlist li ul::after, .hlist li dl::after { content: ")"; font-weight: inherit; } /* Put ordinals in front of ordered list items */ .hlist ol { counter-reset: listitem; } .hlist ol > li { counter-increment: listitem; } .hlist ol > li::before { content: " " counter(listitem) ".\20"; } /* Progressive enhancement: * try to make the dot always follow the list item in same line */ .hlist :is(li,dt,dd):not(:has(:is(li,dt,dd))){ display: inline-block; } /******************************************** * End semantically-correct horizontal lists * *********************************************/ /*** Miscellaneous ***/ .responsive-image { max-width:100%; height:auto; } .view-dark .invert-on-dark, .view-light .invert-on-light { filter:invert(100%); } .pixelated { image-rendering:pixelated; } @media screen and (min-width:720px) { .mobileonly { display:none; } } @media screen and (max-width:720px) { .nomobile { display:none; } } /*** Utility classes for standard MW galleries ***/ /* it's important that spaced comes before centered in the sheet */ .gallery.gallery.gallery.spaced { /* this selector looks ridiculous but is actually part of stock Vector and therefore a necessary override */ display:flex; flex-flow:row wrap; justify-content:space-evenly; margin-left:unset; } .gallery.centered { text-align:center; } /************************** * Start Modular Templates * **************************/ /********* [[Template:Ambox]] *********/ .ambox { --ambox-color:var(--wiki-accent-color); border: 1px solid var(--wiki-content-border-color); border-left: 10px solid var(--ambox-color); border-radius: 2px; display: flex; align-items: center; gap: .6em; margin: 1em 0; padding: 3px .6em; background-color: var(--wiki-content-background-color--secondary); box-shadow: 2px 2px 5px 0px #0002; } @media (min-width: 720px) { .ambox { margin-inline: 10%; } } .ambox.tiny { padding: .04rem .5em; margin-inline: 0; width: fit-content; } .ambox + .ambox { margin-top: -.6em; } .ambox-content { flex: 1; } .ambox-content p { margin: .15em 0; } .ambox-title { font-weight: bold; } /********* [[Template:Hatnote]] *********/ .hatnote { padding: 1px 0 1px 1.6em; margin-bottom: 0.5em; font-style: italic; border-top: 1px solid var(--wiki-content-border-color--secondary); border-bottom: 1px solid var(--wiki-content-border-color--secondary); } .hatnote.icon { padding-left: 0; } /********* [[Template:Spoiler]] *********/ .spoiler-content { background-color: var(--wiki-content-dynamic-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 50%, transparent); transition: all 0.3s; cursor: pointer; overflow:auto; } .spoiler-content > * { pointer-events:none; opacity: 0; transition: all 0.3s; } .spoiler-content.show { background-color: transparent; } .spoiler-content.show > * { pointer-events:unset; opacity: 1; } /********* [[Template:Link icon]] *********/ .link-icon { --link-icon-line-height: 1.5em; --link-icon-size: 1.5em; display: inline-flex; align-items: center; height: var(--link-icon-line-height); vertical-align: bottom; } .link-icon .regular { align-self: center; } .link-icon .regular a { display: flex; } .link-icon .regular img { height: var(--link-icon-size); max-width: var(--link-icon-size); } .link-icon .fallback { outline: 1px solid var(--wiki-content-text-color); border-radius: 50%; text-align: center; width: var(--link-icon-size); line-height: var(--link-icon-size); } .link-icon.notext .fallback { display: inline-block; } .link-icon.notext { display: inline; } /********* [[Template:Quote]] *********/ .quote { background: var(--wiki-content-background-color--secondary); border-radius: 5px; border: 2px solid var(--wiki-content-border-color); margin: .5em 0; padding: .5em; overflow-y: hidden; } .quote .block { display: block; } .quote .title { font-size: large; font-weight: bold; } .quote .content { font-style: italic; } .quote .author { font-weight: bold; text-align: end; } .quote .marks-wrapper { display: flex; gap: 5px; } .quote .marks-wrapper::before, .quote .marks-wrapper::after { font-size: 100px; line-height: 0px; } .quote .marks-wrapper::before { content: "\201C"; margin-top: 40px; } .quote .marks-wrapper::after { content: "\201D"; align-self: end; margin-bottom: -10px; } .client-js .mw-charinsert-item { display:none; } /************************ * End Modular Templates * *************************/ /***************************** * Used by [[Template:Color]] * ******************************/ .color__splotch { display:inline-block; height:1em; width:1em; box-sizing:border-box; vertical-align:text-top; border-radius:50%; border:1px solid var(--wiki-content-text-color); } /********************* * End Template:Color * **********************/ c3a231d8dc2710e154a654fc77cdc0f735905de4 MediaWiki:Theme-definitions 8 227 251 2025-04-09T22:24:36Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki * light[bundled|kind=light] * dark[bundled|kind=dark] 05cdfdf87ea42919cc6ea267d3972cc06847ed60 MediaWiki:Gadgets/purge/main.js 8 228 252 2025-04-09T22:24:36Z ARTIFICER 564804 Importing default loadout javascript text/javascript (function() { if ( document.getElementById( 'ca-cargo-purge' )){ return } // disable if Cargo has already added a purge button if ( mw.config.get( 'wgNamespaceNumber' ) === -1 ) { return } // disable on special pages var l10n = (function(){ var text = { 'buttonlabel': { 'en': 'Purge cache', 'de': 'Aktualisieren', 'fr': 'Purger', 'ru': 'ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ', 'pt': 'Actualizar', 'pt-br': 'Actualizar', }, 'hovertext': { 'en': 'Purge the server cache for this page', 'de': 'Den Server-Cache dieser Seite lΓΆschen', 'fr': 'Purge le cache du serveur de cette page', 'ru': 'ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ кэш сСрвСра Π½Π° этой страницС', 'pt': 'Limpe o cache do servidor para esta pΓ‘gina', 'pt-br': 'Limpe o cache do servidor para esta pΓ‘gina', }, 'errortext': { 'en': 'Failed to purge the page! Error code: $1' } } var lang = mw.config.get( 'wgUserLanguage' ) || 'en'; return function(key){ return text[key] && (text[key][lang] || text[key]['en']) || ''; } })(); var url = new URL(window.location.href); url.searchParams.set('action', 'purge'); var button = mw.util.addPortletLink('p-cactions', url.href, l10n('buttonlabel'), 'ca-gadget-purgecache', l10n('hovertext'), '1'); button.addEventListener('click', (function(event) { event.preventDefault(); var api = new mw.Api(); api.post({ action: 'purge', titles: mw.config.get('wgPageName'), forcerecursivelinkupdate: true }).then(function() { window.location.reload(true); }).fail(function(code) { mw.notify(l10n('errortext').replace('$1', code)); }); })); console.log('purge loaded'); })(); 6e5bbcc0a70b1d962c5b9376272ddbe79443d8fc MediaWiki:Gadgets-definition 8 229 253 2025-04-09T22:24:37Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki * userProfile[ResourceLoader|dependencies=mediawiki.api,jquery,mw.loader,mediawiki.util|default]|userProfile.js|userProfile.css 144e9bfb83e9d4d90710b549af7127cb0f790b78 MediaWiki:Gadget-userProfile.js 8 230 254 2025-04-09T22:24:37Z ARTIFICER 564804 Importing default loadout javascript text/javascript // User profile // <nowiki> mw.loader.using( [ 'mediawiki.util', 'mediawiki.api' ] ).done( function() { var username = mw.config.get('wgRelevantUserName'); var lang = mw.language.bcp47(mw.config.get('wgUserLanguage')); if ( username && !window.loadedHorseUserProfile ) { window.loadedHorseUserProfile = true; var dateOptions = { year: "numeric", month: "short", day: "numeric", hour: "2-digit", minute: "2-digit", timeZone: "UTC", timeZoneName: "short" }; var api = new mw.Api(); if ( mw.util.isIPAddress(username) ) api.get( { action: 'query', list: ['usercontribs', 'blocks'], ucuser: username, ucprop: [], uclimit: 'max', bkip: username, bkprop: ['user', 'by', 'timestamp', 'expiry', 'reason'], bklimit: 1, formatversion: 2 } ).done( function(data) { var editcount = data.query.usercontribs.length; if ( data.continue ) editcount = data.limits.usercontribs+'+' var user = { groups: ['*'], editcount: editcount }; formatProfile(user, data.query.blocks[0]); } ); else api.get( { action: 'query', list: 'users', ususers: username, usprop: ['groups', 'editcount', 'registration', 'blockinfo', 'emailable'], formatversion: 2 } ).done( function(data) { var user = data.query.users[0]; var block; if ( user.blockid ) block = { user: username, by: user.blockedby, timestamp: user.blockedtimestamp, expiry: user.blockexpiry, reason: user.blockreason }; formatProfile(user, block); } ); function formatProfile(user, block) { user.groups.splice(user.groups.indexOf('*'), 1); var text = '<div class="horse-userprofile-info">'; if ( user.groups.length ) { var groupList = user.groups.map( function(group) { var grouppage = '{{MediaWiki:grouppage-'+group+'}}'; return [ '{{#ifexist: '+grouppage+' | [['+grouppage+'|{{int:group-'+group+'}}]] | {{int:group-'+group+'}} }}', '{{#ifexist: '+grouppage+' | [['+grouppage+'|{{int:group-'+group+'-member|'+username+'}}]] | {{int:group-'+group+'-member|'+username+'}} }}' ]; } ).reduce( function(prev, cur) { prev[0].push(cur[0]); prev[1].push(cur[1]); return prev; }, [[], []] ); text += '\n\n<span>{{int:prefs-memberingroups|'+user.groups.length+'|'+username+'}}</span>\t<span>{{int:prefs-memberingroups-type|'+mw.language.listToText(groupList[0])+'|'+mw.language.listToText(groupList[1])+'}}</span>'; } text += '\n\n<span>{{int:prefs-edits}}</span>\t<span>[[Special:Contribs/'+username+'|'+mw.language.convertNumber(user.editcount)+']]</span>'; if ( user.registration ) { text += '\n\n<span>{{int:prefs-registration}}</span>\t<span>'+mw.language.convertNumber(new Date(user.registration).toLocaleString(lang, dateOptions))+'</span>'; if ( !user.emailable ) text += '\n\n<span>{{int:nowikiemailtext|'+username+'}}</span>'; } text += '\n\n</div>'; if ( block && mw.config.get('wgArticleId') !== 0 ) { var blockDate = new Date(block.timestamp); var blockexpiry = '{{int:infiniteblock}}'; if ( !['infinite', 'indefinite', 'infinity', 'never'].includes(block.expiry) ) { var expiry = new Date(block.expiry.replace( /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2,3})/, '$1-$2-$3T$4:$5:$6Z' )); var duration = expiry - blockDate; var blockDuration = []; var factor = 1000; if ( duration % factor === 0 ) blockDuration = ['duration-seconds', Math.floor(duration / factor)]; factor *= 60; if ( duration % factor === 0 ) blockDuration = ['duration-minutes', Math.floor(duration / factor)]; factor *= 60; if ( duration % factor === 0 ) blockDuration = ['duration-hours', Math.floor(duration / factor)]; factor *= 24; if ( duration % factor === 0 ) blockDuration = ['duration-days', Math.floor(duration / factor)]; if ( duration % (factor*7) === 0 ) blockDuration = ['duration-weeks', Math.floor(duration / (factor*7))]; if ( duration % (factor*30) === 0 ) blockDuration = ['months', Math.floor(duration / (factor*30))]; factor *= 365; if ( duration % factor === 0 ) blockDuration = ['duration-years', Math.floor(duration / factor)]; if ( duration % (factor*10) === 0 ) blockDuration = ['duration-decades', Math.floor(duration / (factor*10))]; if ( duration % (factor*100) === 0 ) blockDuration = ['duration-centuries', Math.floor(duration / (factor*100))]; if ( duration % (factor*1000) === 0 ) blockDuration = ['duration-millennia', Math.floor(duration / (factor*1000))]; if ( blockDuration.length < 2 || blockDuration[1] > 1000 ) blockexpiry = mw.language.convertNumber(expiry.toLocaleString(lang, dateOptions)); else blockexpiry = '{{int:'+blockDuration.join('|')+'}}'; } text += '<div class="horse-userprofile-block mw-warning-with-logexcerpt"><div>\n{{int:blocked-notice-logextract|'+username+'}}\n'; text += '* '+mw.language.convertNumber(blockDate.toLocaleString(lang, dateOptions))+' {{int:logentry-block-block|[[User:'+block.by+'|'+block.by+']] <span class="mw-usertoollinks mw-changeslist-links"><span>[[User talk:'+block.by+'|{{int:talkpagelinktext}}]]</span> <span>[[Special:Contribs/'+block.by+'|{{int:contribslink}}]]</span></span>|'+block.by; if ( mw.util.isIPAddress(block.user, true) ) text += '|[[Special:Contribs/'+block.user+'|'+block.user+']] <span class="mw-usertoollinks mw-changeslist-links"><span>[[User talk:'+block.user+'|{{int:talkpagelinktext}}]]</span></span>'; else text += '|[[User:'+block.user+'|'+block.user+']] <span class="mw-usertoollinks mw-changeslist-links"><span>[[User talk:'+block.user+'|{{int:talkpagelinktext}}]]</span> <span>[[Special:Contribs/'+block.user+'|{{int:contribslink}}]]</span></span>'; text += '|'+block.user+'|'+blockexpiry+'|}} <span class="comment">{{int:parentheses|'+block.reason+'}}</span></div></div>'; } api.parse( text, { disablelimitreport: true, wrapoutputclass: 'horse-userprofile mw-message-box mw-content-'+($('#contentSub').attr('dir')||'ltr'), uselang: mw.config.get('wgUserLanguage') } ).done( function(parsedText) { $('#contentSub').append(parsedText.replace( /\u29FCgroup-([^\u29FC\u29FD]+?)(?:-member)?\u29FD/g, '$1' )); } ); } } } ); // </nowiki> 2df0d96710fe446c5289ea1c484419b50c43fd5b MediaWiki:Gadget-userProfile.css 8 231 255 2025-04-09T22:24:38Z ARTIFICER 564804 Importing default loadout css text/css #contentSub > * + .horse-userprofile { margin-top: 1em; } .horse-userprofile { font-size: 120%; color: var(--wiki-content-text-color); border: 2px solid var(--wiki-content-border-color); padding: 6px 12px; } .horse-userprofile-info span:first-of-type { font-weight: bold; } 1729445bb17e2974426befaf9bd441ab4bf189c5 MediaWiki:Gadgets/uploadMultipleFiles/main.js 8 232 256 2025-04-09T22:24:38Z ARTIFICER 564804 Importing default loadout javascript text/javascript /* Modified version of https://dev.fandom.com/wiki/UploadMultipleFiles * from https://terraria.wiki.gg/wiki/MediaWiki:Gadget-uploadMultipleFiles.js */ mw.loader.using(["site", "mediawiki.util"]).then(function() { if (mw.config.get("wgCanonicalSpecialPageName") !== "Upload") return; if (window.__wgg_UploadMultipleFiles_IsLoaded) { return; } window.__wgg_UploadMultipleFiles_IsLoaded = true; var l10nFactory = l10nFactory || function($lang, $data) { return function ($key) { // (null == undefined) is true, (null === undefined) is false return ($data[$lang] && $data[$lang][$key] != null) ? $data[$lang][$key] : $data.en[$key]; }; }; const l10n = l10nFactory(mw.config.get("wgUserLanguage"), { en: { multiupload: "Upload multiple files:", yes: "Yes", no: "No", sourcefiles: "Source files:", categoryname: "Category name:", categorynamehint: "Page name of the category the files will automatically be added to, e.g. Item images", categorynamespace: "Category", uploadfiles: "Upload files", nofiles: "Please select some files first.", nolicense: "Please select a valid license first.", summary: "Summary", license: "Licensing", categories: "Categories", uploading: "Uploading files...", uploaded: "Uploaded:", failed: "Failed:", done: "Done." } }); const getUploadDescription = function() { var sections = []; var summary = $("#wpUploadDescription").val(); var licenseDisplayName = $("#wpLicense option:selected").val(); var categoryName = $("#multiFileCategory").val(); if (summary !== "") sections.push(summary); if (licenseDisplayName !== "") { var licenseTemplateText = $("#wpLicense option:selected").prop("title"); sections.push("== " + l10n("license") + " ==\n" + licenseTemplateText); } if (categoryName !== "") sections.push("[[" + l10n("categorynamespace") + ":" + categoryName + "]]"); return sections.join("\n\n"); }; const getWatchlistPreference = function() { if ($("#wpWatchthis").is(":checked")) { return "watch"; } else { return "nochange"; } }; $(function(){ $("#wpUploadFile").parent().parent().addClass("regularFileSelect"); $("tr.regularFileSelect").before('<tr><td class="mw-label">'+ l10n("multiupload") + '</td><td class="mw-input"><label><input type="radio" name="multipleFiles" value="'+ l10n("yes") + '" /> '+ l10n("yes") + '</label> &nbsp; <label><input type="radio" name="multipleFiles" value="'+ l10n("no") + '" checked="" /> '+ l10n("no") + '</label></td></tr>'); $("tr.regularFileSelect").after('<tr class="multipleFileSelect" style="display:none;"><td class="mw-label">' + l10n("sourcefiles") + '</td><td class="mw-input"><input type="file" id="multiupload" multiple /></td></tr>'); $("input[name='wpUpload']").addClass("regularFileSelect"); $("#wpDestFile").parent().parent().addClass("regularFileSelect"); $("#wpIgnoreWarning").parent().parent().addClass("regularFileSelect"); // Append "category name" textbox to multiupload section $("#mw-upload-form #mw-htmlform-description tbody").append('<tr class="mw-htmlform-field-HTMLTextField multipleFileSelect" style="display:none;"><td class="mw-label"><label for="multiFileCategory"><abbr title="' + l10n("categorynamehint") + '">' + l10n("categoryname") + '</abbr></label></td><td class="mw-input"><input id="multiFileCategory" name="multiFileCategory" size="60"></td></tr>'); $("input[name='wpUpload']").after('<input type="button" value="' + l10n("uploadfiles") + '" class="multipleFileSelect" style="display:none;" id="multiFileSubmit" />'); $("input[name='multipleFiles']").change(function() { if (this.value === l10n("yes")) { $(".regularFileSelect").hide(); $(".multipleFileSelect").show(); } else { $(".regularFileSelect").show(); $(".multipleFileSelect").hide(); } }); $("#multiFileSubmit").click(function() { var files = $("#multiupload")[0].files; // Cancel upload if no files are selected if (files.length === 0) { alert(l10n("nofiles")); return false; } // Cancel upload if no license is selected if ($("#wpLicense option:selected").val() === "" && !mw.config.get("UMFBypassLicenseCheck")) { alert(l10n("nolicense")); return false; } // Description is summary + license + category var description = getUploadDescription(); var watch = getWatchlistPreference(); $("#firstHeading").text(l10n("uploading")); $("#mw-content-text").html("<h3>" + l10n("uploaded") + "</h3><ul></ul><div style='display:none;' id='multiUploadFailed'><h3>" + l10n("failed") + "</h3><ul></ul></div>"); var currentFileIdx = 0; var uploadCurrentFile; uploadCurrentFile = function() { if (currentFileIdx > files.length) { $("#mw-content-text").append("<h3>"+ l10n("done") + "</h3>"); return; } if (files[currentFileIdx] === undefined) { currentFileIdx++; uploadCurrentFile(); return; } fd = new FormData(); fd.append("action", "upload"); fd.append("token", mw.user.tokens.get("csrfToken")); fd.append("filename", files[currentFileIdx].name); fd.append("file", files[currentFileIdx]); fd.append("text", description); fd.append("watchlist", watch); fd.append("ignorewarnings", 1); fd.append("format", "json"); $.ajax({ url: mw.util.wikiScript("api"), method: "POST", data: fd, cache: false, contentType: false, processData: false, type: "POST" }).done(function(d) { if (d.error == undefined) { $("#mw-content-text > ul").append('<li><a href="' + d.upload.imageinfo.descriptionurl + '" target="_blank">' + d.upload.filename + '</a></li>'); } else { $("#multiUploadFailed ul").append('<li>' + files[currentFileIdx].name + '</li>'); $("#multiUploadFailed").show(); } currentFileIdx++; uploadCurrentFile(); }).fail(function() { $("#multiUploadFailed ul").append('<li>' + files[currentFileIdx].name + '</li>'); $("#multiUploadFailed").show(); currentFileIdx++; uploadCurrentFile(); }); }; uploadCurrentFile(); }); }); }); b05306b3ea3271c87b87546ac6619aa30e47782f MediaWiki:Licenses 8 233 257 2025-04-09T22:24:38Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki *Game content ** License|game|This contains content from the game or its official media *Commonly used ** License|fairuse|This will be used in a way that qualifies as "fair use" under US law ** License|CC0|This file is licensed under the CC0 1.0 License ** License|CC-BY-NC-ND|This is licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 License ** License|CC-BY-NC-SA|This is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License ** License|CC-BY-NC|This is licensed under the Creative Commons Attribution-NonCommercial 3.0 License ** License|CC-BY-ND|This is licensed under the Creative Commons Attribution-NoDerivs 3.0 License ** License|CC-BY-SA|This is licensed under the Creative Commons Attribution-ShareAlike 3.0 License ** License|permission|The copyright holder gave permission to use this work only in wiki.gg articles ** License|CC-BY|This is licensed under the Creative Commons Attribution 3.0 License ** License|CC-PD|This is in the public domain ** License|CC-SRR|This is licensed under the Creative Commons Some Rights Reserved License *Unsure or unknown ** License|nolicense|I don't know the license 80cf31331a258a3fc3651f6d5961fbb5c1822cee MediaWiki:Copyright 8 234 258 2025-04-09T22:24:39Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{int:wikigg-copyright|CC BY-SA 4.0|$1}} 999f12b472b0177c515e14cda21d5e4ddc0603e1 MediaWiki:Mainpage 8 235 259 2025-04-09T22:24:39Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki {{SITENAME}} 3879910e8b355a24373fd09ccc909145b2639907 MediaWiki:Apioutput.css 8 236 260 2025-04-09T22:24:40Z ARTIFICER 564804 Importing default loadout css text/css /* All CSS here is applied on api.php pages */ @media (prefers-color-scheme: dark) { body { background-color:#20211f; border-color: #7b7261; color: #f6ecdb; } h1, h2, h3, h4, h5, h6 { color: rgb(234, 224, 207); border-color: rgb(83, 84, 81); } .mw-highlight .s2 { color: rgb(206, 99, 91); } a { color: rgb(133, 180, 221); } a:visited { color: rgb(141, 127, 218); } pre, code, .mw-code { background-color: rgb(34, 35, 33); color: rgb(234, 224, 207); border-color: rgb(63, 64, 62); } } c95cf2c22c12d821f22b745f2aa78d4f6f711500 MediaWiki:Gadgets/hoverShowSpoilers/main.css 8 237 261 2025-04-09T22:24:40Z ARTIFICER 564804 Importing default loadout css text/css .spoiler-content:hover > * { pointer-events:unset; opacity: 1; } .spoiler-content:hover { background-color: transparent; } 1c73aafcb749d7e0e9107c1045310d2af70aae7e MediaWiki:Common.css/doc 8 238 262 2025-04-09T22:24:40Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <div class="mw-parser-output" id="dl-variable-doc"><!-- hide this in your global.css if you're familiar with how default loadout works and this documentation is just in your way --> ==Documentation== This wiki is using the theming template from the [[dlw:|default loadout]]. This template is intended to minimize the work required to create a custom colored version of the standard [[mw:Skin:Vector|Vector]] skin, while maximizing the various nooks and crannies that those colors reach, all while keeping everything legible and matching. Please be aware of the [[support:Customization policy|customization policy]] when modifying the theme. ===Themes=== The [[support:Theme Toggle|Theme Toggle]] extension is installed, and allows multiple themes to be used. In the actual stylesheet below this documentation, you'll find two huge rules at the top, each containing lots of [https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties CSS color variables]. They look like this: <syntaxhighlight lang=css> :root, /* Begin light styles, delete from here to "end light styles" if you don't want your wiki to support any light themes (remove from [[Mediawiki:Theme-definitions]] too, or ask wiki.gg staff for help doing this) */ /* FYI: .view- will affect any theme marked |kind=light, */ /* individual themes are prefixed with .theme- instead */ .view-light { /********************** * Probably edit these * [ LIGHT VIEW ] ***********************/ --wiki-body-background-color: #F6F6F6; --wiki-body-background-image: url(/images/8/80/Site-background.jpg); /* and so on */ } .view-dark { /********************** * Probably edit these * [ DARK VIEW ] ***********************/ --wiki-body-background-color: #171717; --wiki-body-background-image: url(/images/c/c4/Site-background-dark.jpg); /* and so on */ } </syntaxhighlight> These are the standard light and dark themes, defined in [[Mediawiki:Theme-definitions]]. '''Important''': if you want your wiki to only support a single theme, edit that page and remove the line you don't want (don't remove both). The <code>:root</code> selector is a fallback, meaning that in case something happens and Theme Toggle fails to work, the following theme will still mostly work. If you have multiple themes, you can move the <code>:root</code> rule to whichever you'd consider the "default" theme. ===Non-color variables=== {| class="wikitable" ! Variable name !! Notes |- | --wiki-body-background-image | This is the image path to the wiki's background image. Usually this is uploaded to File:Site-background.jpg, File:Site-background-light.jpg, and/or File:Site-background-dark.jpg. While there's not a hard file size limit, it is recommended that this not exceed 250 KB. File size can be reduced by resizing (anything over 2560x1440p is excessive), converting to a jpg, and compressed using sites like [https://tinypng.com TinyPNG]. |- | --wiki-body-background-position | The [https://developer.mozilla.org/en-US/docs/Web/CSS/background-position background-position] of the background image. Usually this is set to <code>top center</code>. |- | --wiki-body-background-size | The [https://developer.mozilla.org/en-US/docs/Web/CSS/background-size background-size] of the background image. Usually this is set to <code>cover</code>. |- | --wiki-body-background-repeat | The [https://developer.mozilla.org/en-US/docs/Web/CSS/background-repeat background-repeat] of the background image. Usually this is set to <code>no-repeat</code>. |- | --wiki-body-background-attachment | The [https://developer.mozilla.org/en-US/docs/Web/CSS/background-attachment background-attachment] of the background image. Usually this is set to <code>fixed</code>. |- | --wiki-body-font-family | The font family of most of the wiki, such as the sidebar, navigation, and content text. Usually this is sans-serif. If modifying this, use a simple font that is easy to read. See <code>--wiki-heading-font-family</code> if you want to incorporate a more decorative font into the theme. |- | --wiki-heading-font-family | The font family of headings, such as the page title and section headings. This font is usually displayed in a larger size, so it's safer to use a more decorative font than <code>--wiki-body-font-family</code>, but still try to keep it legible. |- | --wiki-sidebar-heading-font-family | The font family of sidebar headings. In contrast to <code>--wiki-heading-font-family</code>, this is usually displayed in a smaller size, so keep it simple and easy to read. |- | --wiki-sidebar-border-radius | The [https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius border-radius] of the sidebar. If <code>--wiki-sidebar-portal-spacing</code> is set to 0, then only the top and bottom corners of the sidebar as a whole will be affected, otherwise every portal will have all its corners affected. Units must be specified even if this is set to 0. |- | --wiki-sidebar-portal-spacing | The space between each portal in the sidebar. Units must be specified even if this is set to 0. |- | --wiki-content-border-width | The thickness of the border around the content area. |- | --wiki-sidebar-border-width | The thickness of the border around the sidebar portals. |- | --wiki-content-background-opacity | The opacity of the main content area, to let the wiki's background image show through. Please keep this high, usually above 90%, or it can make reading text difficult. |- | --wiki-sidebar-background-opacity | The background opacity of the sidebar. Usually this inherits <code>--wiki-content-background-opacity</code>. |- | --wiki-icon-general-filter | A filter applied to many icons to make them visible on dark themes. Usually this is just <code>invert(100%)</code> on dark themes and blank on light themes. |- | --wiki-icon-to-link-filter | A filter that converts many icons into the same color as <code>--wiki-content-link-color</code>. This can be generated by plugging that into https://mrpie5.gitlab.io/css-filter-generator/. |} ===List of all colors with contrast checking=== The table below shows all the colors currently in use, as well as notes on how to use them. The last column shows which colors are expected to show up as text against other colors. With the exception of <code>--wiki-content-text-mix-color-95</code>, all text in the last column should be ''clearly'' legible. If it is not, you may need to adjust one of the referenced colors in your color palette. Keep in mind that changes to the opacity variables in the section above will cause the content and sidebar background colors to mix with the body background color/image, so the contrasts below may not be perfectly accurate. {| class="wikitable" ! Variable name !! Color !! style="width: 40em;" | Notes !! Test contrast against these variables |- | --wiki-body-background-color | style="background-color:var(--wiki-body-background-color);" | | The background color behind the background image. This usually only shows up if the background image doesn't load, doesn't fill the screen, or has some transparency. This color should be similar to the overall color of the background image, or the top-left corner if it is made up of many different colors. In the former case, https://matkl.github.io/average-color/ is helpful. | style="background-color:var(--wiki-body-background-color);" | <span style="color:var(--wiki-body-dynamic-color);">--wiki-body-dynamic-color</span><br/> <span style="color:var(--wiki-body-dynamic-color--secondary);">--wiki-body-dynamic-color--secondary</span><br/> |- | --wiki-body-dynamic-color | style="background-color:var(--wiki-body-dynamic-color);" | | This is expected to contrast sharply with the body-background-color, for cases when text needs to be displayed against it. Usually this is {{color|#000}} on light themes and {{color|#fff}} on dark themes. | style="background-color:var(--wiki-body-dynamic-color);" | <span style="color:var(--wiki-body-background-color)">--wiki-body-background-color</span><br/> <span style="color:var(--wiki-body-dynamic-color--inverted);">--wiki-body-dynamic-color--inverted</span><br/> <span style="color:var(--wiki-body-dynamic-color--secondary--inverted);">--wiki-body-dynamic-color--secondary--inverted</span><br/> |- | --wiki-body-dynamic-color--inverted | style="background-color:var(--wiki-body-dynamic-color--inverted);" | | The inverse of <code>--wiki-body-dynamic-color</code>. This should optimally have almost no contrast with the body-background-color. | style="background-color:var(--wiki-body-dynamic-color--inverted);" | <span style="color:var(--wiki-body-dynamic-color);">--wiki-body-dynamic-color</span><br/> <span style="color:var(--wiki-body-dynamic-color--secondary);">--wiki-body-dynamic-color--secondary</span><br/> |- | --wiki-body-dynamic-color--secondary | style="background-color:var(--wiki-body-dynamic-color--secondary);" | | A slightly different version of body-dynamic-color. Usually this is {{color|#333}} on light themes and {{color|#ccc}} on dark themes. | style="background-color:var(--wiki-body-dynamic-color--secondary);" | <span style="color:var(--wiki-body-background-color)">--wiki-body-background-color</span><br/> <span style="color:var(--wiki-body-dynamic-color--inverted);">--wiki-body-dynamic-color--inverted</span><br/> <span style="color:var(--wiki-body-dynamic-color--secondary--inverted);">--wiki-body-dynamic-color--secondary--inverted</span><br/> |- | --wiki-body-dynamic-color--secondary--inverted | style="background-color:var(--wiki-body-dynamic-color--secondary--inverted);" | | The inverse of <code>--wiki-body-dynamic-color--secondary</code>. | style="background-color:var(--wiki-body-dynamic-color--secondary--inverted);" | <span style="color:var(--wiki-body-dynamic-color);">--wiki-body-dynamic-color</span><br/> <span style="color:var(--wiki-body-dynamic-color--secondary);">--wiki-body-dynamic-color--secondary</span><br/> |- | --wiki-content-background-color | style="background-color:var(--wiki-content-background-color);" | | The background color of the main content area. | style="background-color:var(--wiki-content-background-color);" | <span style="color:var(--wiki-content-text-color)">--wiki-content-text-color</span><br/> <span style="color:var(--wiki-content-link-color)">--wiki-content-link-color</span><br/> <span style="color:var(--wiki-content-link-color--visited)">--wiki-content-link-color--visited</span><br/> <span style="color:var(--wiki-content-link-color--hover)">--wiki-content-link-color--hover</span><br/> <span style="color:var(--wiki-content-redlink-color)">--wiki-content-redlink-color</span><br/> <span style="color:var(--wiki-content-text-mix-color)">--wiki-content-text-mix-color</span><br/> <span style="color:var(--wiki-content-dynamic-color)">--wiki-content-dynamic-color</span><br/> <span style="color:var(--wiki-content-dynamic-color--secondary)">--wiki-content-dynamic-color--secondary</span><br/> <span style="color:var(--wiki-content-heading-color)">--wiki-content-heading-color</span><br/> <span style="color:var(--wiki-accent-color)">--wiki-accent-color</span><br/> <span style="color:var(--wiki-neutral-color)">--wiki-neutral-color</span><br/> <span style="color:var(--wiki-success-color)">--wiki-success-color</span><br/> <span style="color:var(--wiki-alert-color)">--wiki-alert-color</span><br/> |- | --wiki-content-background-color--secondary | style="background-color:var(--wiki-content-background-color--secondary);" | | A secondary content background to highlight certain things. Usually this is <code>--wiki-content-background-color</code> with saturation and/or value reduced or increased by about 10%, but you're free to make it whatever you want provided the contrast checks to the right still pass. | style="background-color:var(--wiki-content-background-color--secondary);" | <span style="color:var(--wiki-content-text-color)">--wiki-content-text-color</span><br/> <span style="color:var(--wiki-content-link-color)">--wiki-content-link-color</span><br/> <span style="color:var(--wiki-content-link-color--visited)">--wiki-content-link-color--visited</span><br/> <span style="color:var(--wiki-content-link-color--hover)">--wiki-content-link-color--hover</span><br/> <span style="color:var(--wiki-content-redlink-color)">--wiki-content-redlink-color</span><br/> <span style="color:var(--wiki-content-text-mix-color)">--wiki-content-text-mix-color</span><br/> <span style="color:var(--wiki-content-dynamic-color)">--wiki-content-dynamic-color</span><br/> <span style="color:var(--wiki-content-dynamic-color--secondary)">--wiki-content-dynamic-color--secondary</span><br/> <span style="color:var(--wiki-content-heading-color)">--wiki-content-heading-color</span><br/> <span style="color:var(--wiki-accent-color)">--wiki-accent-color</span><br/> <span style="color:var(--wiki-neutral-color)">--wiki-neutral-color</span><br/> <span style="color:var(--wiki-success-color)">--wiki-success-color</span><br/> <span style="color:var(--wiki-alert-color)">--wiki-alert-color</span><br/> |- | --wiki-content-border-color | style="background-color:var(--wiki-content-border-color);" | | Border color for the main content area and elements within it. | N/A |- | --wiki-content-border-color--secondary | style="background-color:var(--wiki-content-border-color--secondary);" | | A secondary content border color for elements that do not need to stand out as much. Usually this is <code>--wiki-content-border-color</code> with 50% transparency, but it can be adjusted or made identical if it is too subtle. | N/A |- | --wiki-content-border-color--accent | style="background-color:var(--wiki-content-border-color--accent);" | | A border color that is used as an accent. Usually this is <code>--wiki-accent-color</code> with 50% transparency, but it can be any variation of the accent color. | N/A |- | --wiki-content-text-color | style="background-color:var(--wiki-content-text-color);" | | Text color for the main content area. | style="background-color:var(--wiki-content-text-color);" | <span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/> <span style="color:var(--wiki-content-background-color--secondary)">--wiki-content-background-color--secondary</span><br/> |- | --wiki-content-link-color | style="background-color:var(--wiki-content-link-color);" | | Links within the content area. Please do not make this red, as red links on wikis traditionally denote pages that don't exist. | style="background-color:var(--wiki-content-link-color);" | <span style="color:var(--wiki-content-link-label-color);">--wiki-content-link-label-color</span> |- | --wiki-content-link-label-color | style="background-color:var(--wiki-content-link-label-color);" | | This is used when placing text on an element with the link color as a background, such as a button. | style="background-color:var(--wiki-content-link-label-color);" | <span style="color:var(--wiki-content-link-color);">--wiki-content-link-color</span> |- | --wiki-content-link-color--visited | style="background-color:var(--wiki-content-link-color--visited);" | | The color of visited links. This is optional, and usually inherits <code>--wiki-content-link-color</code>. | style="background-color:var(--wiki-content-link-color--visited);" | <span style="color:var(--wiki-content-background-color);">--wiki-content-background-color</span><br/> <span style="color:var(--wiki-content-background-color--secondary);">--wiki-content-background-color--secondary</span> |- | --wiki-content-link-color--hover | style="background-color:var(--wiki-content-link-color--hover);" | | The color links change to when hovered over. This is optional, and usually inherits <code>--wiki-content-link-color</code>. | style="background-color:var(--wiki-content-link-color--hover);" | <span style="color:var(--wiki-content-background-color);">--wiki-content-background-color</span><br/> <span style="color:var(--wiki-content-background-color--secondary);">--wiki-content-background-color--secondary</span> |- | --wiki-content-redlink-color | style="background-color:var(--wiki-content-redlink-color);" | | The color of links to pages that don't exist. Since these should only rarely be seen, you can be a little lax about choosing a color that contrasts with the background, but it should still be legible. | style="background-color:var(--wiki-content-redlink-color);" | <span style="color:var(--wiki-content-background-color);">--wiki-content-background-color</span><br/> <span style="color:var(--wiki-content-background-color--secondary);">--wiki-content-background-color--secondary</span> |- | --wiki-content-text-mix-color | style="background-color:var(--wiki-content-text-mix-color);" | | A mix of <code>--wiki-content-text-color</code> and <code>--wiki-content-background-color</code>, calculated automatically. This is generally used to mark disabled elements or placeholder text. | style="background-color:var(--wiki-content-text-mix-color);" | <span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/> <span style="color:var(--wiki-content-background-color--secondary)">--wiki-content-background-color--secondary</span><br/> <span style="color:var(--wiki-content-text-mix-color-95)">--wiki-content-text-mix-color-95</span> |- | --wiki-content-text-mix-color-95 | style="background-color:var(--wiki-content-text-mix-color-95);" | | The same as <code>--wiki-content-text-mix-color</code>, but the mix is 95% <code>--wiki-content-background-color</code>, calculated automatically. This is used to mark disabled elements. The contrast checker to the right should actually be very hard to read but not impossible. | style="background-color:var(--wiki-content-text-mix-color-95);" | <span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/> <span style="color:var(--wiki-content-background-color--secondary)">--wiki-content-background-color--secondary</span> |- | --wiki-content-dynamic-color | style="background-color:var(--wiki-content-dynamic-color);" | | This is expected to contrast sharply with <code>--wiki-content-background-color</code>. Usually this is {{color|#000}} on light themes and {{color|#fff}} on dark themes. | style="background-color:var(--wiki-content-dynamic-color);" | <span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/> <span style="color:var(--wiki-content-dynamic-color--inverted)">--wiki-content-dynamic-color--inverted</span><br/> <span style="color:var(--wiki-content-dynamic-color--secondary--inverted)">--wiki-content-dynamic-color--secondary--inverted</span><br/> |- | --wiki-content-dynamic-color--inverted | style="background-color:var(--wiki-content-dynamic-color--inverted);" | | The inverse of <code>--wiki-content-dynamic-color</code>. | style="background-color:var(--wiki-content-dynamic-color--inverted);" | <span style="color:var(--wiki-content-dynamic-color)">--wiki-content-dynamic-color</span><br/> <span style="color:var(--wiki-content-dynamic-color--secondary)">--wiki-content-dynamic-color--secondary</span><br/> |- | --wiki-content-dynamic-color--secondary | style="background-color:var(--wiki-content-dynamic-color--secondary);" | | A slightly different version of <code>--wiki-content-dynamic-color</code>. Usually this is {{color|#333}} on light themes and {{color|#ccc}} on dark themes. | style="background-color:var(--wiki-content-dynamic-color--secondary);" | <span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/> <span style="color:var(--wiki-content-dynamic-color--inverted)">--wiki-content-dynamic-color--inverted</span><br/> <span style="color:var(--wiki-content-dynamic-color--secondary--inverted)">--wiki-content-dynamic-color--secondary--inverted</span><br/> |- | --wiki-content-dynamic-color--secondary--inverted | style="background-color:var(--wiki-content-dynamic-color--secondary--inverted);" | | The inverse of <code>--wiki-content-dynamic-color--secondary</code>. | style="background-color:var(--wiki-content-dynamic-color--secondary--inverted);" | <span style="color:var(--wiki-content-dynamic-color)">--wiki-content-dynamic-color</span><br/> <span style="color:var(--wiki-content-dynamic-color--secondary)">--wiki-content-dynamic-color--secondary</span><br/> |- | --wiki-content-heading-color | style="background-color:var(--wiki-content-heading-color);" | | The color of headings, such as the page title and section headings. Usually this is set to <code>--wiki-content-text-color</code>, but feel free to give it a different color to spice up the theme a little. | style="background-color:var(--wiki-content-heading-color);" | <span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span> |- | --wiki-accent-color | style="background-color:var(--wiki-accent-color);" | | Used to style infoboxes, navboxes, focused element outlines, and some buttons, such as the save button when editing. | style="background-color:var(--wiki-accent-color);" | <span style="color:var(--wiki-accent-label-color)">--wiki-accent-label-color</span><br/> <span style="color:var(--wiki-accent-link-color)">--wiki-accent-link-color</span><br/> <span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/> <span style="color:var(--wiki-content-background-color--secondary)">--wiki-content-background-color--secondary</span><br/> |- | --wiki-accent-color--hover | style="background-color:var(--wiki-accent-color--hover);" | | The color of accent-color when hovered over, in some cases. Usually this is just accent-color with saturation and/or value reduced or increased by about 10%, but you're free to make it whatever you want provided the contrast checks to the right still pass. | style="background-color:var(--wiki-accent-color--hover);" | <span style="color:var(--wiki-accent-label-color)">--wiki-accent-label-color</span> |- | --wiki-accent-label-color | style="background-color:var(--wiki-accent-label-color);" | | The color of normal text against the accent color. | style="background-color:var(--wiki-accent-label-color);" | <span style="color:var(--wiki-accent-color)">--wiki-accent-color</span><br/> <span style="color:var(--wiki-accent-color--hover)">--wiki-accent-color--hover</span><br/> |- | --wiki-accent-link-color | style="background-color:var(--wiki-accent-link-color);" | | The color of links against the accent color. | style="background-color:var(--wiki-accent-link-color);" | <span style="color:var(--wiki-accent-color)">--wiki-accent-color</span> |- | --wiki-sidebar-background-color | style="background-color:var(--wiki-sidebar-background-color);" | | The background color of the sidebar to the left of the content area. Usually this inherits <code>--wiki-content-background-color</code>. | style="background-color:var(--wiki-sidebar-background-color);" | <span style="color:var(--wiki-sidebar-link-color)">--wiki-sidebar-link-color</span><br/> <span style="color:var(--wiki-sidebar-heading-color)">--wiki-sidebar-heading-color</span><br/> |- | --wiki-sidebar-border-color | style="background-color:var(--wiki-sidebar-border-color);" | | The border color of the sidebar. Usually this inherits <code>--wiki-content-border-color</code>. | N/A |- | --wiki-sidebar-link-color | style="background-color:var(--wiki-sidebar-link-color);" | | The color of links in the sidebar. Usually this inherits <code>--wiki-content-link-color</code>. | style="background-color:var(--wiki-sidebar-link-color);" | <span style="color:var(--wiki-sidebar-background-color)">--wiki-sidebar-background-color</span> |- | --wiki-sidebar-link-color--hover | style="background-color:var(--wiki-sidebar-link-color--hover);" | | The color links change to when hovered over. This is optional, and usually inherits <code>--wiki-content-link-color--hover</code>. | style="background-color:var(--wiki-sidebar-link-color--hover);" | <span style="color:var(--wiki-sidebar-background-color)">--wiki-sidebar-background-color</span> |- | --wiki-sidebar-heading-color | style="background-color:var(--wiki-sidebar-heading-color);" | | The color of headings in the sidebar. Usually this inherits <code>--wiki-content-heading-color</code>. | style="background-color:var(--wiki-sidebar-heading-color);" | <span style="color:var(--wiki-sidebar-background-color)">--wiki-sidebar-background-color</span> |- | --wiki-navigation-background-color | style="background-color:var(--wiki-navigation-background-color);" | | The primary background color of the navigation tabs above the content area. Usually this inherits <code>--wiki-content-background-color--secondary</code>. | style="background-color:var(--wiki-navigation-background-color);" | <span style="color:var(--wiki-navigation-text-color)">--wiki-navigation-text-color</span><br/> |- | --wiki-navigation-background-color--secondary | style="background-color:var(--wiki-navigation-background-color--secondary);" | | The upper background color of the navigation tabs, as well as the background color of the "More" menu dropdown. Usually this inherits <code>--wiki-content-background-color</code>. | style="background-color:var(--wiki-navigation-background-color--secondary);" | <span style="color:var(--wiki-navigation-text-color)">--wiki-navigation-text-color</span><br/> |- | --wiki-navigation-border-color | style="background-color:var(--wiki-navigation-border-color);" | | Border color of the navigation tabs. Usually this inherits <code>--wiki-content-border-color</code>. | N/A |- | --wiki-navigation-text-color | style="background-color:var(--wiki-navigation-text-color);" | | The color of text in the navigation tabs. Usually this inherits <code>--wiki-content-link-color</code>. | style="background-color:var(--wiki-navigation-text-color);" | <span style="color:var(--wiki-navigation-background-color)">--wiki-navigation-background-color</span><br/> <span style="color:var(--wiki-navigation-background-color--secondary)">--wiki-navigation-background-color--secondary</span><br/> |- | --wiki-navigation-text-color--hover | style="background-color:var(--wiki-navigation-text-color--hover);" | | The color of text in the navigation tabs when hovered. Usually this inherits <code>--wiki-content-link-color--hover</code>. | style="background-color:var(--wiki-navigation-text-color--hover);" | <span style="color:var(--wiki-navigation-background-color)">--wiki-navigation-background-color</span><br/> <span style="color:var(--wiki-navigation-background-color--secondary)">--wiki-navigation-background-color--secondary</span><br/> |- | --wiki-navigation-selected-background-color | style="background-color:var(--wiki-navigation-selected-background-color);" | | The background color of the currently active navigation tab. Usually this inherits <code>--wiki-content-background-color</code> | style="background-color:var(--wiki-navigation-selected-background-color);" | <span style="color:var(--wiki-navigation-selected-text-color)">--wiki-navigation-selected-text-color</span><br/> |- | --wiki-navigation-selected-border-color | style="background-color:var(--wiki-navigation-selected-border-color);" | | The border color of the currently active navigation tab. Usually this inherits <code>--wiki-navigation-border-color</code> | N/A |- | --wiki-navigation-selected-text-color | style="background-color:var(--wiki-navigation-selected-text-color);" | | The text color of the currently active navigation tab. Usually this inherits <code>--wiki-content-text-color</code> | style="background-color:var(--wiki-navigation-selected-text-color);" | <span style="color:var(--wiki-navigation-selected-background-color)">--wiki-navigation-selected-background-color</span><br/> |- | --wiki-neutral-color | style="background-color:var(--wiki-neutral-color);" | | A gray-ish color for displaying neutral text, such as a diff size of 0 in RecentChanges and page history. Usually this inherits <code>--wiki-content-text-mix-color</code>, but can be set explicitly if that color is not gray enough. | style="background-color:var(--wiki-neutral-color);" | <span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/> <span style="color:var(--wiki-content-background-color--secondary)">--wiki-content-background-color--secondary</span> |- | --wiki-alert-color | style="background-color:var(--wiki-alert-color);" | | A general, usually red-ish color used for negative notices, most notably negative diffs in RecentChanges and page history, and the "cancel" button when editing. | style="background-color:var(--wiki-alert-color);" | <span style="color:var(--wiki-alert-label-color)">--wiki-alert-label-color</span><br/> <span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/> <span style="color:var(--wiki-content-background-color--secondary)">--wiki-content-background-color--secondary</span><br/> |- | --wiki-alert-label-color | style="background-color:var(--wiki-alert-label-color);" | | The color of text against <code>--wiki-alert-color</code> as a background. | style="background-color:var(--wiki-alert-label-color);" | <span style="color:var(--wiki-alert-color)">--wiki-alert-color</span><br/> |- | --wiki-warning-color | style="background-color:var(--wiki-warning-color);" | | A general, usually orange-ish color used for warning notices. | style="background-color:var(--wiki-warning-color);" | <span style="color:var(--wiki-warning-label-color)">--wiki-warning-label-color</span><br/> <span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/> |- | --wiki-warning-label-color | style="background-color:var(--wiki-warning-label-color);" | | The color of text against <code>--wiki-warning-color</code> as a background. | style="background-color:var(--wiki-warning-label-color);" | <span style="color:var(--wiki-warning-color)">--wiki-warning-color</span><br/> |- | --wiki-success-color | style="background-color:var(--wiki-success-color);" | | A general, usually green-ish color used for success notices, most noticeably positive diffs in RecentChanges and page history. | style="background-color:var(--wiki-success-color);" | <span style="color:var(--wiki-success-label-color)">--wiki-success-label-color</span><br/> <span style="color:var(--wiki-content-background-color)">--wiki-content-background-color</span><br/> <span style="color:var(--wiki-content-background-color--secondary)">--wiki-content-background-color--secondary</span><br/> |- | --wiki-success-label-color | style="background-color:var(--wiki-success-label-color);" | | The color of text against <code>--wiki-success-color</code> as a background. | style="background-color:var(--wiki-success-label-color);" | <span style="color:var(--wiki-success-color)">--wiki-success-color</span><br/> |} ==Stylesheet== <!-- When rendered on common.css, the actual stylesheet will be right here --> </div> 58f90e2fed90701650577a6fd770f265da41e96f MediaWiki:DataMaps.css 8 239 263 2025-04-09T22:24:41Z ARTIFICER 564804 Importing default loadout css text/css /** Container */ .ext-datamaps-container-content .ext-datamaps-container-leaflet { background: var(--wiki-content-background-color--secondary); } /** Legend */ .ext-datamaps-container .ext-datamaps-control-expandable[aria-expanded="true"] { background: var(--wiki-content-background-color--secondary); /* fallback */ background: color-mix(in srgb, var(--wiki-content-background-color--secondary) 95%, transparent); } .ext-datamaps-container .oo-ui-tabOptionWidget { color: var(--wiki-content-link-color); } .ext-datamaps-container .oo-ui-tabSelectWidget-frameless .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected { background: var(--wiki-content-link-color); box-shadow: none; color: var(--wiki-content-link-label-color); } /** Popups */ .ext-datamaps-container .leaflet-popup-content-wrapper, .ext-datamaps-container .leaflet-popup-tip { background: var(--wiki-content-background-color--secondary); color: var(--wiki-content-text-color); } .ext-datamaps-container .ext-datamaps-popup-buttons a, .ext-datamaps-container .leaflet-popup-close-button { filter: var(--wiki-icon-general-filter); cursor: pointer; } .ext-datamaps-popup-header .ext-datamaps-popup-subtitle, .ext-datamaps-popup-header .ext-datamaps-popup-location { color: var(--wiki-content-text-mix-color); } .ext-datamaps-popup .ext-datamaps-popup-tools li a { border: 1px solid var(--wiki-content-link-color); transition: background 100ms, color 100ms; } .ext-datamaps-popup .ext-datamaps-popup-tools li a:hover { background: var(--wiki-content-link-color); color: var(--wiki-content-link-label-color); } /** Controls */ .ext-datamaps-container .leaflet-bar { background-color: var(--wiki-content-background-color--secondary); border-color: var(--wiki-content-link-color); /* fallback */ border-color: color-mix(in srgb, var(--wiki-content-link-color) 50%, transparent); } .ext-datamaps-container .leaflet-bar button:hover { background-color: var(--wiki-content-background-color--secondary); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 25%, transparent); } .ext-datamaps-container .leaflet-control { color: var(--wiki-content-text-color); } .leaflet-control-container .oo-ui-buttonElement > .oo-ui-buttonElement-button { min-height: unset; } .ext-datamaps-container .leaflet-control button { border-bottom-color: var(--wiki-content-link-color); /* fallback */ border-bottom-color: color-mix(in srgb, var(--wiki-content-link-color) 50%, transparent); color: var(--wiki-content-text-color); } /* HACK: awful selector, v1.0 will prolly use a standard class on these */ .ext-datamaps-container .ext-datamaps-control span[class^="oo-ui-icon"] { filter: var(--wiki-icon-general-filter); } /** Search */ .ext-datamaps-container .ext-datamaps-control-search ul.ext-datamaps-control-search-results { background: var(--wiki-content-background-color--secondary); } .ext-datamaps-container .ext-datamaps-control-search ul.ext-datamaps-control-search-results li:focus, .ext-datamaps-container .ext-datamaps-control-search ul.ext-datamaps-control-search-results li[data-highlighted="true"] { background: var(--wiki-content-background-color--secondary); /* fallback */ background: color-mix(in srgb, var(--wiki-content-link-color) 15%, transparent); color: var(--wiki-content-link-color); } .ext-datamaps-container .ext-datamaps-container-status > :not(.oo-ui-widget) { background:var(--wiki-content-background-color--secondary); color:var(--wiki-content-text-mix-color); } .ext-datamaps-container .leaflet-control-container .ext-datamaps-control-coords { background: var(--background-color-neutral-subtle); color: var(--color-base--subtle); } 5e77b029532be5083c8a8d831a3f4a0bd634613b MediaWiki:Gadgets/mpEditLinks/main.js 8 240 264 2025-04-09T22:24:41Z ARTIFICER 564804 Importing default loadout javascript text/javascript $( function () { if(!document.getElementById('mp-container')) return; var rootpage = document.getElementById('mp-container').dataset['rootpage']; // Get the rootpage passed from the main page module, so we don't need to make an API call /* generate the links here instead of in the wikitext, so that users who can't see them don't have them * in the DOM at all, and screenreaders and search engines don't get confused */ function createLinks(){ $('.mp-box').each(function(_, el){ var params = '?action=edit'; // only add the long preload stuff if the box doesn't exist, for prettier urls if ( $(el).hasClass('missing') ){ params += '&preload=Template:Main page box/preload&preloadparams[0]=' + el.dataset['boxId'].charAt(0).toUpperCase() + el.dataset['boxId'].slice(1); /* preloadparam is box id with first letter capitalized */ } $('<a></a>', { href: mw.util.getUrl(rootpage + '/' + el.dataset['boxId']) + params, text: 'Edit ' + rootpage + '/' + el.dataset['boxId'] }).appendTo( $('<div></div>', { class: 'mp-edit-link' }).prependTo(el) ); }); } function toggleLinks(){ $('.mp-edit-link').each(function(_, el){ $(el).toggle().css('display none;'); }); } $('<span></span>', { text: 'Toggle edit buttons', class: 'mp-edit-toggle', on: {click: toggleLinks}, }).appendTo($('#top')); createLinks(); }); 80b135c05947f6acbb039d454cd147aa67999d3a MediaWiki:Gadgets/mpEditLinks/main.css 8 241 265 2025-04-09T22:24:42Z ARTIFICER 564804 Importing default loadout css text/css .mp-edit-link { display:block; position:absolute; right:0.5em; top:0.5em; background:var(--wiki-content-background-color); } .mp-edit-link a { display:block; padding:0.1em; border:1px solid var(--wiki-content-link-color); } .mp-edit-link a::before { display:inline-block; content:''; background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3E edit %3C/title%3E%3Cpath d=%22m16.77 8 1.94-2a1 1 0 0 0 0-1.41l-3.34-3.3a1 1 0 0 0-1.41 0L12 3.23zM1 14.25V19h4.75l9.96-9.96-4.75-4.75z%22/%3E%3C/svg%3E"); background-size:contain; width:1em; height:1em; filter:var(--wiki-icon-to-link-filter); vertical-align:text-top; margin-right:0.2em; } b1c240c635d5c7207d35f958031d9eace6324795 MediaWiki:Gadgets/ranger/main.css 8 242 266 2025-04-09T22:24:42Z ARTIFICER 564804 Importing default loadout css text/css /** as of Module:navbox version 1.2.4 **/ .ranger-navbox{ border-color: var(--navbox-outer-border-color); border-style: var(--navbox-outer-border-style); border-width: var(--navbox-outer-border-width); border-radius: var(--navbox-outer-border-radius); padding: var(--navbox-padding); font-size: var(--navbox-font-size); margin: var(--navbox-margin); background: var(--navbox-background); line-height: 1.5; clear:both; } .ranger-navbox * { border: 0; } .ranger-navbox .center *{ margin-left: unset; margin-right: unset; } .ranger-navbox, .ranger-navbox .ranger-section, .ranger-navbox .ranger-listbox{ display: flex; flex-direction: column; gap: var(--navbox-gap); } .ranger-navbox .ranger-title, .ranger-navbox .ranger-header{ text-align: center; min-height: 1.5em; position: relative; z-index: 0; font-weight: bold; } .ranger-navbox .ranger-title{ color: var(--navbox-title-color); background: var(--navbox-title-background); font-size: var(--navbox-title-font-size); padding: var(--navbox-title-padding--y) calc(1.5em + var(--navbox-icon-offset--x)); /* left and right padding equal to the size and position of the edit/collapse buttons */ } .ranger-navbox .ranger-title a, .ranger-navbox .ranger-title a:visited, .ranger-navbox .ranger-title a:hover, .ranger-navbox .ranger-title a.external, .ranger-navbox .ranger-title a.external:visited, .ranger-navbox .ranger-title a.external:hover { text-decoration: var(--navbox-title-link-decoration); } .ranger-navbox .ranger-title a.new, .ranger-navbox .ranger-title a.new:visited { text-decoration: var(--navbox-title-redlink-decoration); } .ranger-navbox .ranger-title a, .ranger-navbox .ranger-title a.external, .ranger-navbox .ranger-title a.external:visited { color: var(--navbox-title-link-color); } .ranger-navbox .ranger-title a:visited{ color: var(--navbox-title-link-color--visited); } .ranger-navbox .ranger-title a.new, .ranger-navbox .ranger-title a.new:visited{ color:var(--navbox-title-redlink-color); } .ranger-navbox .ranger-title a:hover, .ranger-navbox .ranger-title a:visited:hover, .ranger-navbox .ranger-title a.external:hover, .ranger-navbox .ranger-title a.external:visited:hover { color:var(--navbox-title-link-color--hover); } .ranger-navbox .ranger-header{ color: var(--navbox-header-color); background: var(--navbox-header-background); font-size: var(--navbox-header-font-size); padding: var(--navbox-header-padding--y) calc(1.5em + var(--navbox-icon-offset--x)); /* left and right padding equal to the size and position of the edit/collapse buttons */ } .ranger-navbox .ranger-sublist .ranger-header{ font-size: var(--navbox-subheader-font-size); padding: var(--navbox-subheader-padding--y) calc(1.5em + var(--navbox-icon-offset--x)); /* left and right padding equal to the size and position of the edit/collapse buttons */ } .ranger-navbox .ranger-header a, .ranger-navbox .ranger-header a:visited, .ranger-navbox .ranger-header a:hover, .ranger-navbox .ranger-header a.external, .ranger-navbox .ranger-header a.external:visited, .ranger-navbox .ranger-header a.external:hover { text-decoration: var(--navbox-header-link-decoration); } .ranger-navbox .ranger-header a.new, .ranger-navbox .ranger-header a.new:visited { text-decoration: var(--navbox-header-redlink-decoration); } .ranger-navbox .ranger-header a, .ranger-navbox .ranger-header a.external, .ranger-navbox .ranger-header a.external:visited { color: var(--navbox-header-link-color); } .ranger-navbox .ranger-header a:visited{ color: var(--navbox-header-link-color--visited); } .ranger-navbox .ranger-header a.new, .ranger-navbox .ranger-header a.new:visited{ color:var(--navbox-header-redlink-color); } .ranger-navbox .ranger-header a:hover, .ranger-navbox .ranger-header a:visited:hover, .ranger-navbox .ranger-header a.external:hover, .ranger-navbox .ranger-header a.external:visited:hover { color:var(--navbox-header-link-color--hover); } .ranger-navbox .ranger-meta{ font-size: var(--navbox-title-font-size); position: absolute; left: var(--navbox-icon-offset--x); top: calc(var(--navbox-title-padding--y) + 0.08em); /* 0.08em: vertial offset tweak based on the icon graph */ display: block; } .ranger-navbox .ranger-meta .nv{ --mask: var(--icon-metalinks); display: block; width: 0.84em; /* based on the icon graph */ height: 0.84em; -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-position: center center; mask-position: center center; background-color: var(--navbox-title-icon-color); } .ranger-navbox .ranger-meta .nv > a{ display: block; width: 100%; height: 100%; opacity: 0; } .ranger-navbox .ranger-meta .nv > a > span{ display: block; width: 100%; height: 100%; overflow: hidden; } .ranger-navbox .ranger-meta:has(.mw-selflink){ display: none; } .ranger-navbox, .ranger-navbox .ranger-section{ position: relative; } .ranger .mw-collapsible-toggle-placeholder{ display: none; } .ranger-navbox .ranger-title > .ranger-title-text, .ranger-navbox .ranger-header > .ranger-header-text{ pointer-events: none; } .ranger-navbox .ranger-title > .ranger-title-text a, .ranger-navbox .ranger-header > .ranger-header-text a{ pointer-events: auto; } .ranger-navbox .ranger-title > .mw-collapsible-toggle, .ranger-navbox .ranger-header > .mw-collapsible-toggle{ --mask: var(--icon-chevron-down); position: absolute; right: 0; top: 0; z-index: -1; display: block; width: 100%; height: 100%; overflow:hidden; } .ranger-navbox.small-collapsible-toggle-click-area .ranger-title > .mw-collapsible-toggle, .ranger-navbox.small-collapsible-toggle-click-area .ranger-header > .mw-collapsible-toggle{ width: 1.5em; height: 1.5em; right: var(--navbox-icon-offset--x); } .ranger-navbox.small-collapsible-toggle-click-area .ranger-title > .mw-collapsible-toggle{ top: var(--navbox-title-padding--y); } .ranger-navbox.small-collapsible-toggle-click-area .ranger-header > .mw-collapsible-toggle{ top: var(--navbox-header-padding--y); } .ranger-navbox.small-collapsible-toggle-click-area .ranger-sublist .ranger-header > .mw-collapsible-toggle{ top: var(--navbox-subheader-padding--y); } .ranger-navbox .ranger-title > .mw-collapsible-toggle::before, .ranger-navbox .ranger-header > .mw-collapsible-toggle::before{ content: ""; display: block; width: 1.5em; height: 1.5em; position: absolute; right: var(--navbox-icon-offset--x); -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-position: center center; mask-position: center center; background-color: var(--navbox-title-icon-color); transform: scaleY(-1); } .ranger-navbox .ranger-title > .mw-collapsible-toggle::before{ top: var(--navbox-title-padding--y); } .ranger-navbox .ranger-header > .mw-collapsible-toggle::before{ top: var(--navbox-header-padding--y); } .ranger-navbox .ranger-sublist .ranger-header > .mw-collapsible-toggle::before{ top: var(--navbox-subheader-padding--y); } .ranger-navbox.small-collapsible-toggle-click-area .ranger-title > .mw-collapsible-toggle::before, .ranger-navbox.small-collapsible-toggle-click-area .ranger-header > .mw-collapsible-toggle::before{ top: 0; right: 0; } .ranger-navbox .ranger-header > .mw-collapsible-toggle::before{ background-color: var(--navbox-header-icon-color); } .ranger-navbox .ranger-title > .mw-collapsible-toggle.mw-collapsible-toggle-collapsed::before, .ranger-navbox .ranger-header > .mw-collapsible-toggle.mw-collapsible-toggle-collapsed::before{ transform: none; } .ranger-navbox .ranger-title > .mw-collapsible-toggle *, .ranger-navbox .ranger-title > .mw-collapsible-toggle::after, .ranger-navbox .ranger-header > .mw-collapsible-toggle *, .ranger-navbox .ranger-header > .mw-collapsible-toggle::after{ display: none; } .ranger-navbox .ranger-list{ width: unset; padding: var(--navbox-list-padding); } .ranger-navbox .ranger-above{ background: var(--navbox-above-background); color: var(--navbox-above-color); padding: var(--navbox-above-padding); width: unset; } .ranger-navbox .ranger-below{ background: var(--navbox-below-background); color: var(--navbox-below-color); padding: var(--navbox-below-padding); width: unset; } .ranger-navbox .ranger-sublist{ display: flex; flex-direction: column; gap: var(--navbox-gap); } .ranger-navbox .ranger-section-body{ display: grid; gap: var(--navbox-gap); grid-template-columns: auto minmax(0,1fr); } .ranger-navbox .ranger-row{ display: contents; } .ranger-navbox .ranger-group, .ranger-navbox .ranger-subgroup{ text-align: var(--navbox-group-text-align); white-space: nowrap; font-weight: bold; background: var(--navbox-group-background); color: var(--navbox-group-color); padding: var(--navbox-group-padding); width: unset; } /* for desktop view */ .ranger-navbox.group-align-left .ranger-group, .ranger-navbox.group-align-left .ranger-subgroup{ --navbox-group-text-align: left; } .ranger-navbox.group-align-center .ranger-group, .ranger-navbox.group-align-center .ranger-subgroup{ --navbox-group-text-align: center; } .ranger-navbox.group-align-right .ranger-group, .ranger-navbox.group-align-right .ranger-subgroup{ --navbox-group-text-align: right; } /* for mobile view */ .ranger-navbox.mobile-group-align-left .ranger-group, .ranger-navbox.mobile-group-align-left .ranger-subgroup{ --navbox-group-text-align--mobile: left; } .ranger-navbox.mobile-group-align-center .ranger-group, .ranger-navbox.mobile-group-align-center .ranger-subgroup{ --navbox-group-text-align--mobile: center; } .ranger-navbox.mobile-group-align-right .ranger-group, .ranger-navbox.mobile-group-align-right .ranger-subgroup{ --navbox-group-text-align--mobile: right; } .ranger-navbox .ranger-listbox > .ranger-wrap{ background: var(--navbox-list-background); color: var(--navbox-list-color); flex-grow: 1; } .ranger-navbox .ranger-sublist{ flex-grow: var(--count); } .ranger-navbox .ranger-listbox:first-child{ /* A list-n without group-n */ grid-column-end: span 2; } .ranger-navbox .ranger-group, .ranger-navbox .ranger-subgroup, .ranger-navbox .ranger-listbox > .ranger-wrap{ display: grid; justify-items: stretch; align-items: center; } .ranger-navbox.striped-even .ranger-even, .ranger-navbox.striped-odd .ranger-odd{ background: var(--navbox-list-background--striped); } /* make links use full line height (larger click box)*/ .ranger-navbox .hlist a{ display: inline-block; } .ranger-navbox .align-left, .ranger-navbox .alignleft{ text-align: left; } .ranger-navbox .align-center, .ranger-navbox .aligncenter{ text-align: center; } .ranger-navbox .align-right, .ranger-navbox .alignright{ text-align: right; } /* responsive */ @media screen and (max-width: 720px) { .ranger-navbox .ranger-section-body, .ranger-navbox .ranger-sublist { display: flex; flex-flow: column; } .ranger-navbox .ranger-row{ display: block; } .ranger-navbox .ranger-group + .ranger-listbox > .ranger-sublist:first-child, .ranger-navbox .ranger-subgroup + .ranger-listbox > .ranger-sublist:first-child{ margin-top: var(--navbox-gap); } .ranger-navbox .ranger-listbox.empty{ display: none; } .ranger-navbox .ranger-group, .ranger-navbox .ranger-subgroup{ text-align: var(--navbox-group-text-align--mobile); white-space: normal; } .ranger-navbox .ranger-sublist { padding-left: var(--navbox-tree-indent); margin-left: var(--navbox-tree-line-indent); } .ranger-navbox .ranger-subgroup, .ranger-navbox .ranger-listbox { position:relative; } .ranger-navbox .ranger-group br, .ranger-navbox .ranger-subgroup br{ display: none; } .ranger-navbox .ranger-sublist > .ranger-section > .ranger-header{ margin-left: calc( 0px - var(--navbox-tree-indent) - var(--navbox-tree-line-indent)); } .ranger-navbox .ranger-sublist .ranger-row > ::before{ position: absolute; left: calc(0px - var(--navbox-tree-indent)); top: 0; width: var(--navbox-tree-line-width); height: 100%; content: ''; display: block; background-color: var(--navbox-tree-line-color); } .ranger-navbox .ranger-sublist .ranger-row > .ranger-listbox::before, .ranger-navbox .ranger-row.empty-list > .ranger-subgroup::before{ height: calc(100% + var(--navbox-gap)); } .ranger-navbox .ranger-sublist .ranger-row:last-child > ::before { display: none; } .ranger-navbox .ranger-sublist .ranger-row:last-child > :first-child::before { display: block; height: calc(50% + var(--navbox-tree-line-width)/2); } .ranger-navbox .ranger-subgroup::after, .ranger-navbox .empty-group > .ranger-listbox > .ranger-wrap::after{ position: absolute; left: calc(0px - var(--navbox-tree-indent) + var(--navbox-tree-line-width)); width: calc(var(--navbox-tree-indent) - var(--navbox-tree-line-spacing) - var(--navbox-tree-line-width)); height: var(--navbox-tree-line-width); content: ''; background-color: var(--navbox-tree-line-color); } /* increase height for links */ .ranger-navbox .hlist{ line-height: 2; } } /**** `.pill` class: the "pill" style ****/ /* remove middle dots betweem items */ .ranger-navbox.pill .hlist dd:not(:last-child)::after, .ranger-navbox.pill .hlist li:not(:last-child)::after{ display: none; } /* remove parentheses around nested lists*/ .ranger-navbox.pill .hlist dd ol::before, .ranger-navbox.pill .hlist dd ul::before, .ranger-navbox.pill .hlist dd dl::before, .ranger-navbox.pill .hlist dt ol::before, .ranger-navbox.pill .hlist dt ul::before, .ranger-navbox.pill .hlist dt dl::before, .ranger-navbox.pill .hlist li ol::before, .ranger-navbox.pill .hlist li ul::before, .ranger-navbox.pill .hlist li dl::before, .ranger-navbox.pill .hlist dd ol::after, .ranger-navbox.pill .hlist dd ul::after, .ranger-navbox.pill .hlist dd dl::after, .ranger-navbox.pill .hlist dt ol::after, .ranger-navbox.pill .hlist dt ul::after, .ranger-navbox.pill .hlist dt dl::after, .ranger-navbox.pill .hlist li ol::after, .ranger-navbox.pill .hlist li ul::after, .ranger-navbox.pill .hlist li dl::after { display: none; } /* make lists inline-flex */ .ranger-navbox.pill .hlist ul, .ranger-navbox.pill .hlist ol, .ranger-navbox.pill .hlist dl{ display: inline-flex; gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* "pill" style for items */ .ranger-navbox.pill .hlist li, .ranger-navbox.pill .hlist dt, .ranger-navbox.pill .hlist dd{ padding: var(--navbox-pill-padding); border-radius: var(--navbox-pill-border-radius); box-shadow: var(--navbox-pill-box-shadow); background: var(--navbox-pill-background); /* 100% height */ display: flex; align-items: center; /* for nested lists */ gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* Add a hover / focus feedback style */ .ranger-navbox.pill .hlist dd:hover, .ranger-navbox.pill .hlist dd:focus, .ranger-navbox.pill .hlist dt:hover, .ranger-navbox.pill .hlist dt:focus, .ranger-navbox.pill .hlist li:hover, .ranger-navbox.pill .hlist li:focus { box-shadow: var(--navbox-pill-box-shadow--hover); background: var(--navbox-pill-background--hover); } /* pill with selflink * * Only select the deepest level for nested lists. * We have to use :has() to pick pills with selflink and * all browsers which support :has() should also support :is() and :not(), * therefore we can use :is() and :not() here safely. */ .ranger-navbox.pill .hlist .ranger-list :is(li,dt,dd):has(.mw-selflink):not(:has(li, dt, dd)){ background: var(--navbox-pill-selflink-background); } /**** `.pill-mobile` class: only apply the "pill" style on mobile ****/ @media screen and (max-width: 720px) { /* remove middle dots betweem items */ .ranger-navbox.pill-mobile .hlist dd:not(:last-child)::after, .ranger-navbox.pill-mobile .hlist li:not(:last-child)::after{ display: none; } /* remove parentheses around nested lists*/ .ranger-navbox.pill-mobile .hlist dd ol::before, .ranger-navbox.pill-mobile .hlist dd ul::before, .ranger-navbox.pill-mobile .hlist dd dl::before, .ranger-navbox.pill-mobile .hlist dt ol::before, .ranger-navbox.pill-mobile .hlist dt ul::before, .ranger-navbox.pill-mobile .hlist dt dl::before, .ranger-navbox.pill-mobile .hlist li ol::before, .ranger-navbox.pill-mobile .hlist li ul::before, .ranger-navbox.pill-mobile .hlist li dl::before, .ranger-navbox.pill-mobile .hlist dd ol::after, .ranger-navbox.pill-mobile .hlist dd ul::after, .ranger-navbox.pill-mobile .hlist dd dl::after, .ranger-navbox.pill-mobile .hlist dt ol::after, .ranger-navbox.pill-mobile .hlist dt ul::after, .ranger-navbox.pill-mobile .hlist dt dl::after, .ranger-navbox.pill-mobile .hlist li ol::after, .ranger-navbox.pill-mobile .hlist li ul::after, .ranger-navbox.pill-mobile .hlist li dl::after { display: none; } /* make lists inline-flex */ .ranger-navbox.pill-mobile .hlist ul, .ranger-navbox.pill-mobile .hlist ol, .ranger-navbox.pill-mobile .hlist dl{ display: inline-flex; gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* "pill" style for items */ .ranger-navbox.pill-mobile .hlist li, .ranger-navbox.pill-mobile .hlist dt, .ranger-navbox.pill-mobile .hlist dd{ /* 100% height */ display: flex; align-items: center; /* for nested lists */ gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* "pill" style for items */ .ranger-navbox.pill-mobile .hlist li, .ranger-navbox.pill-mobile .hlist dt, .ranger-navbox.pill-mobile .hlist dd{ padding: var(--navbox-pill-padding); border-radius: var(--navbox-pill-border-radius); box-shadow: var(--navbox-pill-box-shadow); background: var(--navbox-pill-background); /* 100% height */ display: flex; align-items: center; /* for nested lists */ gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* Add a hover / focus feedback style */ .ranger-navbox.pill-mobile .hlist dd:hover, .ranger-navbox.pill-mobile .hlist dd:focus, .ranger-navbox.pill-mobile .hlist dt:hover, .ranger-navbox.pill-mobile .hlist dt:focus, .ranger-navbox.pill-mobile .hlist li:hover, .ranger-navbox.pill-mobile .hlist li:focus { box-shadow: var(--navbox-pill-box-shadow--hover); background: var(--navbox-pill-background--hover); } /* pill with selflink * * Only select the deepest level for nested lists. * We have to use :has() to pick pills with selflink and * all browsers which support :has() should also support :is() and :not(), * therefore we can use :is() and :not() here safely. */ .ranger-navbox.pill-mobile .hlist .ranger-list :is(li,dt,dd):has(.mw-selflink):not(:has(li, dt, dd)){ background: var(--navbox-pill-selflink-background); } } /********************* * End Template:Navbox* **********************/ c42569592e2ba21765b16a47bf770a778bf8e508 MediaWiki:Gadgets/ranger 8 243 267 2025-04-09T22:24:43Z ARTIFICER 564804 Importing default loadout GadgetDefinition application/json { "settings": { "section": "", "package": false, "default": true, "hidden": true, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [ "Pages with navboxes" ], "namespaces": [], "contentModels": [], "rights": [] }, "module": { "pages": [ "variables.css", "main.css", "custom.css" ], "dependencies": [], "type": "styles" } } 0e59fa9520b52214b9fedaecae9f41d86afd197f MediaWiki:Gadgets/druid 8 244 268 2025-04-09T22:24:43Z ARTIFICER 564804 Importing default loadout GadgetDefinition application/json { "settings": { "package": false, "section": "", "default": true, "hidden": true, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [ "Pages with DRUID infoboxes" ], "namespaces": [], "contentModels": [], "rights": [] }, "module": { "pages": [ "variablesEditMe.css", "mainReadonly.css", "customEditMe.css" ], "dependencies": [], "type": "styles" } } 5c21b27bf41aba17b090e0d888010c308bd5d0bb MediaWiki:Gadgets/druid/mainReadonly.css 8 245 269 2025-04-09T22:24:44Z ARTIFICER 564804 Importing default loadout css text/css /* --------------------------------------------- */ /* Do not edit this file please */ /* You can edit variablesEditMe and customEditMe */ /* --------------------------------------------- */ .druid-container { border: 4px solid var(--druid-border-color); border-radius: 3px; background: var(--druid-background-color); float: right; clear: right; margin: 0 0 1em 1em; width:100%; max-width:22em; box-sizing: border-box; border-collapse: collapse; } @media screen and (max-width: 720px) { .druid-container { float: none; margin: 0.5rem auto; } } .druid-main-images-file, .druid-main-image { text-align:center; } .druid-infobox .druid-title, .druid-infobox .druid-section { background:var(--druid-secondary-background-color); /* fallback */ background:color-mix(in srgb, var(--druid-secondary-background-color) 75%, transparent); color:var(--druid-secondary-background-label-color); text-align:center; font-size:1.5em; padding:1px; } .druid-infobox .druid-section { font-size: 1.25em; font-weight: 500; } .druid-infobox .druid-collapsible .druid-section { flex-grow: 1; } .druid-label { font-weight:bold; text-align: right; box-sizing: border-box; } .druid-row > .druid-label { width: 48%; flex-shrink: 0; } .druid-row > .druid-label, .druid-row > .druid-data { padding-inline: 0.3em; } .druid-main-image, .druid-main-images { padding:5px; } .druid-main-image img, .druid-main-images img { max-width:100%; height:auto; } .druid-main-images-labels { display:flex; flex-direction:row; flex-wrap:wrap; justify-content: space-evenly; margin:0.25em; gap:0.25em; } .druid-main-images-label { cursor:pointer; flex:1 1 auto; text-align:center; transition:.1s ease-in; outline:1px solid var(--druid-link-color); } .druid-main-images-label.focused { background:var(--druid-link-color); color:var(--druid-link-label-color); } .druid-main-images-label:not(.focused):hover { background:var(--druid-link-color); /* fallback */ background:color-mix(in srgb, var(--druid-link-color) 25%, transparent); } .druid-toggleable-data:not(.focused), .druid-main-images-file:not(.focused), .druid-toggleable-heading:not(.focused) { display:none; } .druid-row:not(:has(.druid-grid)):has(.druid-toggleable-data-empty.focused) { display:none; } .druid-section:has(.druid-toggleable-heading-empty.focused) { display:none; } .druid-grid { display:grid; gap: 0.3em; padding: 0.35em; } .druid-grid-item { background:var(--druid-tertiary-background-color); padding:0.25em; border:1px solid var(--druid-border-color); /* fallback */ border:1px solid color-mix(in srgb, var(--druid-border-color) 50%, transparent); border-radius: 2px; } .druid-grid-item .druid-label, .druid-grid-item .druid-data { text-align: center; } .druid-data-wide { width:100%; } .druid-section-container > .druid-collapsible { display: flex; justify-content: space-between; align-items: center; } .druid-collapsed { display:none!important; } .druid-collapsible { cursor:pointer; position:relative; } .druid-collapsible::after { content: ""; display: block; position: absolute; right: 10px; width: 20px; height: 20px; --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3E collapse %3C/title%3E%3Cpath d='M1 13.75l1.5 1.5 7.5-7.5 7.5 7.5 1.5-1.5-9-9-9 9z'/%3E%3C/svg%3E") no-repeat; -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-position: center center; mask-position: center center; background-color: var(--druid-secondary-background-label-color); } .druid-collapsible-collapsed::after { transform: rotate(180deg); } .druid-section-container:has(.druid-toggleable-data-empty.focused):not(:has(.druid-toggleable-data-nonempty.focused)):not(:has(.druid-data-nonempty)) { display: none; } /***************************************** Div support *****************************************/ div.druid-row { display:flex; margin-block: 1px; } div.druid-row + div.druid-row { margin-top: 0; } div.druid-row > .druid-label { background: var(--druid-tertiary-background-color); } .druid-infobox .druid-title { font-weight: 700; } .druid-infobox #toc { display:none; } /******** Custom display classes *********/ div.druid-stacked.druid-row, .druid-stacked div.druid-row { flex-direction: column; } .druid-stacked.druid-row > .druid-label, .druid-stacked .druid-row > .druid-label { text-align: left; width: 100%; flex-basis:unset; } .druid-stacked.druid-row > .druid-data, .druid-stacked .druid-row > .druid-data { padding-left: .75em; } /* --------------------------------------------- */ /* Do not edit this file please */ /* You can edit variablesEditMe and customEditMe */ /* --------------------------------------------- */ c43cc0f0e37f1be790c96da24cfc86e3ef2dfe8f MediaWiki:Gadgets/druid/variablesEditMe.css 8 246 270 2025-04-09T22:24:44Z ARTIFICER 564804 Importing default loadout css text/css /* These variables are designed to inherit from your wiki's color variables. If your wiki uses a different naming scheme, change the inner names to match yours. If your wiki doesn't use color variables you should consider doing so, otherwise you can replace the inner variables or the fallback values with colors that match your wiki. */ /* Light and dark are separated to make it easier for you to do local customizations but in the default version they are identical */ :root, .view-light .druid-container { --druid-background-color: var(--wiki-content-background-color, #ffffff); --druid-secondary-background-color: var(--wiki-accent-color, #36c); --druid-secondary-background-label-color: var(--wiki-accent-label-color, #fff); --druid-tertiary-background-color: var(--wiki-content-background-color--secondary, #eaecf0); --druid-border-color: var(--wiki-content-border-color, #a7d7f9); --druid-link-color: var(--wiki-content-link-color, #0645ad); --druid-link-label-color: var(--wiki-content-link-label-color, #fff); } .view-dark .druid-container { --druid-background-color: var(--wiki-content-background-color, #ffffff); --druid-secondary-background-color: var(--wiki-accent-color, #36c); --druid-secondary-background-label-color: var(--wiki-accent-label-color, #fff); --druid-tertiary-background-color: var(--wiki-content-background-color--secondary, #eaecf0); --druid-border-color: var(--wiki-content-border-color, #a7d7f9); --druid-link-color: var(--wiki-content-link-color, #0645ad); --druid-link-label-color: var(--wiki-content-link-label-color, #fff); } 8cf88860d6782aac5b9b65a990d7eddfd5c5c3f2 MediaWiki:Gadgets/druid/customEditMe.css 8 247 271 2025-04-09T22:24:45Z ARTIFICER 564804 Importing default loadout css text/css /* Custom DRUID styles should go here */ 7ecb3c635f03ba714e419c200113f47043f0e358 MediaWiki:Gadgets/druid/doc 8 248 272 2025-04-09T22:24:45Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki <includeonly>This gadget provides styles for {{ml|Infobox}}. You can customize: * [[MediaWiki:Gadgets/druid/variablesEditMe.css]] - to customize the built-in variables (e.g. if you want to make the color of your infobox not match the wiki accent color). This file will load '''first''' out of all of the DRUID CSS files. * [[MediaWiki:Gadgets/druid/customEditMe.css]] - to otherwise customize DRUID (e.g. if you want to change the padding, or add a border image, something that's not supported through variables. This file will load '''last''' out of all of the DRUID CSS files, so all rules here will overwrite rules in [[MediaWiki:Gadgets/druid/mainReadonly.css]] with equal specificity. Please do NOT modify [[MediaWiki:Gadgets/druid/mainReadonly.css]]!! That page may be updated by wiki.gg staff via script, and the updates will not function if you modify it. More documentation can be found at [[support:DRUID infoboxes|DRUID infoboxes]]<!-- --></includeonly><noinclude>This is the documentation page for [[{{#titleparts:{{FULLPAGENAME}}|-1}}]].</noinclude> 2813eb77787e37161b0ed7e4e85c9f5f2d7ad92e MediaWiki:Newarticletext 8 249 273 2025-04-09T22:24:46Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki You have followed a link to a page that does not exist yet. To create the page, start typing in the box below (see the [$1 help page] for more info). If you are here by mistake, click your browser's <strong>back</strong> button. 778f9ef242eb3058ef30ed3325b901adb762a2af MediaWiki:Gadgets 8 250 274 2025-04-09T22:24:46Z ARTIFICER 564804 Importing default loadout wikitext text/x-wiki See also: [[Special:Gadgets]] for a list of all installed gadgets, formatted in a friendly way. {{Special:PrefixIndex/MediaWiki:Gadgets}} 14815d26ea4ae878b5e77e1781eeb35cd742ad2c MediaWiki:Gadgets/druidScripts 8 251 275 2025-04-09T22:24:46Z ARTIFICER 564804 Importing default loadout GadgetDefinition application/json { "settings": { "section": "", "default": true, "hidden": true, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [ "Pages with DRUID infoboxes" ], "namespaces": [], "contentModels": [], "rights": [] }, "module": { "pages": [ "main.js" ], "dependencies": [ "jquery" ], "type": "general" } } 5df47905f5c565c4a5c0da774413a6dee76eb7d1 MediaWiki:Gadgets/druidScripts/main.js 8 252 276 2025-04-09T22:24:47Z ARTIFICER 564804 Importing default loadout javascript text/javascript mw.hook( 'wikipage.content' ).add( () => { $( '.druid-title-tab' ).off( 'click' ) .on( 'click', function () { const $parent = $( this ).closest( '.druid-container' ); $parent.find( '.druid-toggleable' ).removeClass( 'focused' ); const i = $( this ).attr( 'data-druid' ); $parent.find( `.druid-toggleable[data-druid="${i}"]` ).addClass( 'focused' ); } ); $( '.druid-section-tab' ).off( 'click' ) .on( 'click', function () { const $parent = $( this ).closest( '.druid-section-container' ); $parent.find( '.druid-toggleable' ).removeClass( 'focused' ); const i = $( this ).attr( 'data-druid' ); $parent.find( `.druid-toggleable[data-druid="${i}"]` ).addClass( 'focused' ); } ); $( '.druid-collapsible' ).off( 'click' ) .on( 'click', function () { const kind = $( this ).attr( 'data-druid-section' ); $( this ) .toggleClass( 'druid-collapsible-collapsed' ) .closest( '.druid-container' ) .find( `[data-druid-section-row="${kind}"]` ) .toggleClass( 'druid-collapsed' ); } ); } ); /* End DRUID */ af8f73fc414f3fc0dae8d97a044675e9912fa457 MediaWiki:Gadgets/discordTemplate 8 253 277 2025-04-09T22:24:47Z ARTIFICER 564804 Importing default loadout GadgetDefinition application/json { "settings": { "section": "", "package": true, "default": true, "hidden": true, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [ "Pages with Discord embeds" ], "namespaces": [], "contentModels": [], "rights": [] }, "module": { "pages": [ "main.js" ], "dependencies": [ "jquery" ], "type": "general" } } 1232b7fbe2ff589295233393f6f387cf52793a2a MediaWiki:Gadgets/discordTemplate/main.js 8 254 278 2025-04-09T22:24:48Z ARTIFICER 564804 Importing default loadout javascript text/javascript /** * DiscordCompact.js * ---------------------- * A very simple script to display a Discord widget. * Version 0.0.2 * https://support.wiki.gg/wiki/DiscordCompact * ---------------------- */ $(function() { var widget = $("#content #discord-compact-widget"); // Bail out if we didn't find a widget. if (!widget.length) return; var id = widget.attr("data-id"); // Ensure that the id is not blank. if (id === "") throw new Error("DiscordCompact has a blank server id!"); // Ensure that the id consists only of numbers and is at least 17 characters long. if (!new RegExp("^[0-9]{17}[0-9]+$").test(id)) throw new Error("DiscordCompact has an invalid server id!"); var apiBase = "https://discord.com/api/guilds/" + id; // Get some information about the server, such as online member count and invite url. // This also tells us if the server exists or has widgets disabled, so we look out for that too. $.ajax(apiBase + "/widget.json").fail(function(req){ if (!req.responseJSON) throw new Error("DiscordCompact encountered an unknown error whilst fetching widget.json (status: " + req.status); switch (req.responseJSON.code) { case 10004: throw new Error("DiscordCompact has a valid server id, but no such server exists!"); case 50004: throw new Error("DiscordCompact has a valid server id, but that server has widgets disabled!"); default: throw new Error("DiscordCompact encountered an unknown error whilst fetching widget.json (status: " + req.status + "; code: " + req.responseJSON.code + ")"); } }).done(function(res){ const inviteURL = res.instant_invite; // Warn if we can't get an invite URL. if (inviteURL == null) console.warn("DiscordCompact cannot get an invite URL; does this server have an invite channel set in Widget settings?"); // Now get the widget image. $.ajax({url: apiBase + "/widget.png?style=banner2", xhrFields: {responseType: "blob"}}).fail(function(req){ if (!req.responseJSON) throw new Error("DiscordCompact encountered an unknown error whilst fetching widget.png! (status: " + req.status); throw new Error("DiscordCompact encountered an unknown error whilst fetching widget.png! (status: " + req.status + "; code: " + req.responseJSON.code + ")"); }).done(function(blob){ // Convert the image data into base64. This prevents us having to make the client request it a second time. const imageReader = new FileReader(); imageReader.readAsDataURL(blob); imageReader.onloadend = function() { const b64Data = imageReader.result; // Replace the widget with an <a> tag widget.replaceWith(function() { return $("<a>", { id: widget.attr("id"), class: widget.attr("class"), style: widget.attr("style"), alt: "Discord server widget", href: inviteURL }); }); // We need to grab the widget again to update it. widget = $("#discord-compact-widget"); // Setup the CSS so that the image is displayed. widget.css("display", "block"); widget.css("max-height", "76px"); widget.css("max-width", "320px"); // Create the image. const widgetImage = document.createElement("img"); widgetImage.src = b64Data; widgetImage.style.width = "100%"; widgetImage.style.height = "100%"; widgetImage.style.borderRadius = "5px"; widget.append(widgetImage); // Prevent image dragging. widget.on("dragstart", function(e) { e.preventDefault(); }); // We're done here. console.log("DiscordCompact loaded successfully!"); } }); }); }); /** * based on https://dev.fandom.com/wiki/MediaWiki:DiscordIntegrator/code.js * * used by other wikis. */ $(function() { 'use strict'; var mconfig = mw.config.get([ 'wgContentLanguage', 'wgUserLanguage', 'wgUserName' ]); if (window.DiscordIntegratorLoaded) { return; } window.DiscordIntegratorLoaded = true; /** * Main object * @static */ var DiscordIntegrator = { /** * Initializing */ init: function() { mw.hook('wikipage.content').add($.proxy(this.insertToContent, this)); }, /** * Finding the designated places in content * in which to place the widget and placing it */ insertToContent: function($content) { $content.find('.DiscordIntegrator:not(.loaded)').each($.proxy(function(cabbage, el) { el = $(el); el.html(this.generateContent(el.data())).addClass('loaded'); }, this)); }, /** * Determines the theme of the widget. * @param {string} config Configured theme * @return {string} 'light' or 'dark' depending on the wiki theme and configuration */ determineTheme: function(config) { // If explicitly configured to light or dark. if (config === 'dark') { return 'dark'; } if (config === 'light') { return 'light'; } /** If not configured **/ // try to determine based on wiki theme (set by themeToggle): var clas = $(':root').attr('class'); var regex = /(^|\s)theme-(\w+)(\s|$)/; var match = clas.match(regex); if(match){ var wikiThemeName = match[2]; if(typeof(config) === 'object' && config !== null){ //with json theme config if(config[wikiThemeName]){ return config[wikiThemeName]; } } if(wikiThemeName === 'light'){ return 'light'; } if(wikiThemeName === 'dark'){ return 'dark'; } } // Otherwise, default to dark. return 'dark'; }, /** * Generating widget content from an object * @return {string} Content of the widget */ generateContent: function(config) { if (!config.id || !String(config.id).match(/\d{17,19}/)) { return "Error: ID of the widget is malformed or not supplied, please see <a href='https://support.wiki.gg/wiki/DiscordWidget' title='the instructions'>the instructions</a> for how to find your server's ID. Please make sure you are not inserting <strong>the DiscordIntegrator template</strong> when asked for <strong>your widget ID</strong>."; } if ( ( config.loggedIn === true || Boolean(config['logged-in']) === true && config['logged-in'] !== 'false' && config['logged-in'] !== '{{{loggedIn}}}' ) && !mconfig.wgUserName ) { return "Please <a href='/Special:UserLogin' title='log in'>log in</a> to see this widget."; } var username = config.username === '@disabled' ? '' : config.username === '@function' && typeof window.DiscordIntegratorGetUsername === 'function' ? window.DiscordIntegratorGetUsername() : config.username || mconfig.wgUserName; return mw.html.element('iframe', { src: 'https://discord.com/widget?id=' + config.id + '&theme=' + this.determineTheme(config.theme) + '&username=' + encodeURIComponent(username), width: config.width || '100%', height: config.height || '400px', allowtransparency: 'true', frameborder: '0', title: "Discord server widget" }); } }; DiscordIntegrator.init(); }); 1e1fd5704120cf67e15a757bd964c7295bdb464e MediaWiki:Gadgets/luaImportLinks 8 255 279 2025-04-09T22:24:48Z ARTIFICER 564804 Importing default loadout GadgetDefinition application/json { "settings": { "section": "", "package": true, "default": true, "hidden": true, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [], "namespaces": [ 828 ], "contentModels": [], "rights": [] }, "module": { "pages": [ "main.js" ], "dependencies": [ "jquery" ], "type": "general" } } e5843d78effc2d04aa1fde18970885a1845ae525 MediaWiki:Gadgets/luaImportLinks/main.js 8 256 280 2025-04-09T22:24:49Z ARTIFICER 564804 Importing default loadout javascript text/javascript /* Link to imported modules from Lua code */ $(function() { var config = mw.config.get([ 'wgCanonicalNamespace', 'wgFormattedNamespaces' ]); if (config.wgCanonicalNamespace !== 'Module') { return; } var localizedNamespace = config.wgFormattedNamespaces[828]; $('.s1, .s2, .s').each(function() { var $this = $(this); var html = $this.html(); var quote = html[0]; var isLongStringQuote = quote === '['; var quoteRE = new RegExp('^\\' + quote + '|\\' + quote + '$', 'g'); if (isLongStringQuote) { quoteRE = /^\[\[|\]\]$/g; } var name = html.replace(quoteRE, ''); var isEnglishPrefix = name.startsWith('Module:'); var isLocalizedPrefix = name.startsWith(localizedNamespace + ':'); var isDevPrefix = name.startsWith('Dev:'); if (isEnglishPrefix || isLocalizedPrefix || isDevPrefix) { var attrs = { href: mw.util.getUrl(name) }; if (isDevPrefix) { attrs.href = 'https://commons.wiki.gg/wiki/Module:' + mw.util.wikiUrlencode(name.replace('Dev:', '')); attrs.target = '_blank'; attrs.rel = 'noopener'; } var link = mw.html.element('a', attrs, name); var str = quote + link + quote; if (isLongStringQuote) { str = '[[' + link + ']]'; } $this.html(str); } }); }); dc09796545586723653a906ae1fed87411f49536 MediaWiki:Gadgets/spoilers/main.js 8 257 281 2025-04-09T22:24:49Z ARTIFICER 564804 Importing default loadout javascript text/javascript /* [[Template:Spoiler]] */ mw.hook('wikipage.content').add(function() { $('.spoiler-content') .off('click') // in case this code is loaded twice .on('click', function(e){ $(this).toggleClass('show'); }).find('a').on('click', function(e){ e.stopPropagation(); }); }); /* End Template:Spoiler */ c96e5a798a1781287a56037db79ab9094a3eae2b MediaWiki:Gadgets/spoilers 8 258 282 2025-04-09T22:24:50Z ARTIFICER 564804 Importing default loadout GadgetDefinition application/json { "settings": { "section": "", "package": true, "default": true, "hidden": true, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [ "Pages with spoilers" ], "namespaces": [], "contentModels": [], "rights": [] }, "module": { "pages": [ "main.js" ], "dependencies": [ "jquery" ], "type": "general" } } e2aacbae968c704385f3937e6b0004f263907193 MediaWiki:Gadgets/charInserts 8 259 283 2025-04-09T22:24:50Z ARTIFICER 564804 Importing default loadout GadgetDefinition application/json { "settings": { "section": "", "package": true, "default": true, "hidden": true, "supportsUrlLoad": false }, "loadConditions": { "actions": [ "edit" ], "categories": [], "namespaces": [], "contentModels": [], "rights": [] }, "module": { "pages": [ "main.js" ], "dependencies": [ "jquery" ], "type": "general" } } 518bbdc62f3fe767736f2de6ee9ba2b7eb9ab0a8 MediaWiki:Gadgets/charInserts/main.js 8 260 284 2025-04-09T22:24:50Z ARTIFICER 564804 Importing default loadout javascript text/javascript $(function() { $('.mw-charinsert-item').each(function() { $(this).text($(this).closest('div').attr('data-ci-label')); $(this).css('display', 'inline-block'); }); $('.ci-loading-text').css('display','none'); }); daabc4b17b7729432f5c146630a0715a7abc13e9 MediaWiki:Gadgets/themeColorEditor 8 261 285 2025-04-09T22:24:51Z ARTIFICER 564804 Importing default loadout GadgetDefinition application/json { "settings": { "section": "", "package": true, "default": true, "hidden": true, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [], "namespaces": [ 8 ], "contentModels": [ "css" ], "rights": [ "editinterface" ] }, "module": { "pages": [ "main.js" ], "dependencies": [], "type": "general" } } 294a47ed0bd03228625e8241b69d9f11fadd0390 MediaWiki:Gadgets/themeColorEditor/main.js 8 262 286 2025-04-09T22:24:51Z ARTIFICER 564804 Importing default loadout javascript text/javascript $(function() { if (mw.config.get('wgPageName') != "MediaWiki:Common.css") return; mw.loader.load( 'https://commons.wiki.gg/load.php?lang=en&modules=ext.gadget.themeColorEditorScript&skin=vector&maxage=360&smaxage=360' ) }); a6d1c6789815c3c323c2afd84def2c1ca23d5efe MediaWiki:Gadgets/ranger/variables.css 8 263 287 2025-04-09T22:24:52Z ARTIFICER 564804 Importing default loadout css text/css .ranger-navbox{ --navbox-background: var(--wiki-content-background-color); /* for entire navbox */ --navbox-margin: 0.5em auto; --navbox-padding: 4px; --navbox-gap: 3px; /* when using zero-value, it must be 0px */ --navbox-outer-border-color: var(--wiki-content-border-color--accent); --navbox-outer-border-width: 1px; --navbox-outer-border-style: solid; --navbox-outer-border-radius: 0px; --navbox-font-size: calc(1em - 2px); --navbox-title-color: var(--wiki-accent-label-color); --navbox-title-font-size: calc(125%); --navbox-title-background: var(--wiki-accent-color); --navbox-title-icon-color: var(--wiki-accent-label-color); --navbox-title-link-color: var(--navbox-title-color); --navbox-title-link-color--visited: var(--navbox-title-link-color); --navbox-title-link-color--hover: var(--wiki-accent-link-color); --navbox-title-redlink-color: var(--navbox-title-link-color); --navbox-title-link-decoration: underline solid; --navbox-title-redlink-decoration: underline wavy; --navbox-title-padding--y: 0.5em; --navbox-above-background: color-mix(in srgb, var(--wiki-content-text-color) 15%, transparent); --navbox-above-color: var(--wiki-content-text-color); --navbox-above-padding: var(--navbox-list-padding); --navbox-below-background: var(--navbox-above-background); --navbox-below-color: var(--navbox-above-color); --navbox-below-padding: var(--navbox-above-padding); --navbox-header-color: var(--navbox-title-color); --navbox-header-font-size: calc(110%); --navbox-header-background: var(--navbox-title-background); --navbox-header-icon-color: var(--navbox-title-icon-color); --navbox-header-link-color: var(--navbox-title-link-color); --navbox-header-link-color--visited: var(--navbox-title-link-color--visited); --navbox-header-link-color--hover: var(--navbox-title-link-color--hover); --navbox-header-redlink-color: var(--navbox-title-redlink-color); --navbox-header-link-decoration: var(--navbox-title-link-decoration); --navbox-header-redlink-decoration: var(--navbox-title-redlink-decoration); --navbox-header-padding--y: 0.3em; --navbox-subheader-font-size: calc(100%); --navbox-subheader-padding--y: calc(var(--navbox-header-padding--y)/2); --navbox-list-background: color-mix(in srgb, var(--wiki-content-text-color) 5%, transparent); --navbox-list-background--striped: color-mix(in srgb, var(--wiki-content-text-color) 8%, transparent); --navbox-list-color: var(--wiki-content-text-color); --navbox-list-padding: 0.25em 0.5em; /* --navbox-group-* also apply to .ranger-subgroup */ --navbox-group-text-align: left; --navbox-group-text-align--mobile: left; /* only for mobile view */ --navbox-group-background: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent); --navbox-group-color: var(--wiki-content-text-color); --navbox-group-padding: var(--navbox-list-padding); --navbox-tree-line-color: color-mix(in srgb, var(--wiki-accent-color) 30%, transparent); --navbox-tree-line-width: 2px; --navbox-tree-indent: 1em; --navbox-tree-line-indent: 0.5em; --navbox-tree-line-spacing: var(--navbox-gap); --icon-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-chevron-down' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M6 9l6 6l6 -6'%3E%3C/path%3E%3C/svg%3E"); --icon-metalinks: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-edit' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1'%3E%3C/path%3E%3Cpath d='M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z'%3E%3C/path%3E%3Cpath d='M16 5l3 3'%3E%3C/path%3E%3C/svg%3E"); --navbox-icon-offset--x: 0.5rem; /* should be an absolute length (rem-based or px-based) */ } .ranger-navbox.pill, .ranger-navbox.pill-mobile{ /** vars for the "pill" style only (`.pill` and ".pill-mobile" clases) **/ --navbox-pill-gap: 0.3em; --navbox-pill-padding: 0.25em 0.75em; --navbox-pill-border-radius: 3px; --navbox-pill-box-shadow: none; --navbox-pill-background: color-mix(in srgb, var(--wiki-content-text-color) 5%, transparent); --navbox-pill-box-shadow--hover: inset 0 0 3px var(--navbox-list-color); --navbox-pill-background--hover: var(--navbox-pill-background); --navbox-pill-selflink-background: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent);/* background of pills with selflink in them */ /* remove list cell background */ --navbox-list-background: none; --navbox-list-background--striped: color-mix(in srgb, var(--wiki-content-text-color) 3%, transparent); } .ranger-navbox.no-underline-title-links{ --navbox-title-link-color: var(--wiki-accent-link-color); --navbox-title-link-decoration: none; --navbox-title-redlink-decoration: none; } .ranger-navbox.noborder, .ranger-navbox.no-border{ --navbox-padding: 0px; --navbox-outer-border-width: 0px; } /****************************** * Fallback for older browsers * *******************************/ @supports not (color:color-mix(in srgb, #000, transparent)) { .ranger-navbox { --navbox-above-background: var(--wiki-content-background-color--secondary); --navbox-list-background: transparent; --navbox-list-background--striped: var(--wiki-content-background-color--secondary); --navbox-group-background: var(--wiki-content-background-color--secondary); --navbox-tree-line-color: var(--wiki-content-background-color--secondary); } .ranger-navbox.pill, .ranger-navbox.pill-mobile { --navbox-pill-background: var(--wiki-content-background-color--secondary); --navbox-list-background--striped: transparent; --navbox-pill-selflink-background: var(--wiki-content-background-color--secondary); } } /*************** * End fallback * ****************/ 0f49887270380cdac6968f16cfc75a115818c39a MediaWiki:Gadgets/hoverShowSpoilers 8 264 288 2025-04-09T22:24:52Z ARTIFICER 564804 Importing default loadout GadgetDefinition application/json { "settings": { "section": "", "package": false, "default": false, "hidden": false, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [], "namespaces": [], "contentModels": [], "rights": [] }, "module": { "pages": [ "main.css" ], "dependencies": [], "type": "styles" } } e110b26ef7e015e5579a5eb41f366be7e37da34b MediaWiki:Gadgets/mpEditLinks 8 265 289 2025-04-09T22:24:53Z ARTIFICER 564804 Importing default loadout GadgetDefinition application/json { "settings": { "section": "", "package": true, "default": true, "hidden": false, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [], "namespaces": [], "contentModels": [], "rights": [ "editprotected" ] }, "module": { "pages": [ "main.css", "main.js" ], "dependencies": [ "jquery", "mediawiki.util" ], "type": "general" } } 896c95a05c8010f4e27f4ae9b4ceff0ac857e576 MediaWiki:Gadgets/collapsibleSidebarSections 8 266 290 2025-04-09T22:24:53Z ARTIFICER 564804 Importing default loadout GadgetDefinition application/json { "settings": { "section": "appearance", "package": true, "default": false, "hidden": false, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [], "namespaces": [], "contentModels": [], "rights": [] }, "module": { "pages": [ "main.css", "main.js" ], "dependencies": [ "jquery" ], "type": "general" } } d67dc8fabaf4e1d275a3b17c42f3d707f00b707c MediaWiki:Gadgets/collapsibleSidebarSections/main.js 8 267 291 2025-04-09T22:24:54Z ARTIFICER 564804 Importing default loadout javascript text/javascript $(function(){ // CONFIG section, you can edit this part // a list of sections that should be collapsed by default for *all users*. // This should be the name of the heading as listed in Mediawiki:Sidebar and is case-sensitive. // For example, if you have '* Character_Classes' and you want that section collapsed, add 'Character_Classes' into the brackets below. // Separate entries with commas and use underscores instead of spaces. // Example list: ['Character_Classes', 'Items', 'External_Links'] // Please DO NOT add navigation or tb into this list, as they are expected functionality. var INITIALLY_COLLAPSED_IDS = []; var MIN_ACTIVATION_WIDTH = 721; //END CONFIG // add the p- onto ids for ease of use, if not present INITIALLY_COLLAPSED_IDS.forEach(function(id, index){ if(!id.startsWith('p-')){ INITIALLY_COLLAPSED_IDS[index] = 'p-' + id; } }); var $portals = $("#mw-panel .vector-menu-portal"); var setup = function(){ $portals.each(function(index, el){ if(window.innerWidth < MIN_ACTIVATION_WIDTH) { return; } var $el = $(el); var $id = $el.attr("id"); if(!$id){ return; } // check if this portal should be collapsed if( // portal is set to be initially collapsed and user has not indicated that they want it open (INITIALLY_COLLAPSED_IDS.includes($id) && localStorage.getItem('sidebar_c_'+$id) != "n") || // or // user has indicated they want this portal collapsed (localStorage.getItem('sidebar_c_'+$id) === "y") ){ $el.addClass('collapsed').find('.vector-menu-content').slideUp(0); } }); } setup(); $(window).on('resize', setup); $portals.on("click", "h3", function(event){ if(window.innerWidth < MIN_ACTIVATION_WIDTH) { return; } var $el = $(this).parent(); var $id = $el.attr("id"); if(!$id){ return; } $el.toggleClass('collapsed'); if($el.hasClass('collapsed')){ // more consistent between class and slide status. localStorage.setItem('sidebar_c_'+$id, "y"); $el.find('.vector-menu-content').slideUp('fast'); } else{ localStorage.setItem('sidebar_c_'+$id, "n"); $el.find('.vector-menu-content').slideDown('fast'); } }); }); 63d4425138f9c81e8294fbd01a08de9e1f58256a MediaWiki:Gadgets/collapsibleSidebarSections/main.css 8 268 292 2025-04-09T22:24:55Z ARTIFICER 564804 Importing default loadout css text/css @media screen and (min-width:721px) { .client-js #mw-panel .vector-menu-portal .vector-menu-heading { cursor: pointer; display: flex; align-items: center; justify-content: space-between; } .client-js #mw-panel .vector-menu-portal .vector-menu-heading::after { content: ""; display: block; pointer-events: none; width: 14px; height: 14px; margin-top: 1px; /* offset */ --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-chevron-down' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M6 9l6 6l6 -6'%3E%3C/path%3E%3C/svg%3E") no-repeat; -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-position: center center; mask-position: center center; background-color: var(--wiki-sidebar-link-color); transform: rotate(180deg); } .client-js #mw-panel .vector-menu-portal.collapsed .vector-menu-heading::after { transform: rotate(0deg); } .client-js #mw-panel .vector-menu-portal::after { transition:0.5s } .client-js #mw-panel .vector-menu-portal.collapsed::after { border-image-slice:22% 45%; transition:0.5s; } } fcc58f877118c1bd86e6d26c83270653e40f4e24 MediaWiki:Gadgets/uploadMultipleFiles 8 269 293 2025-04-09T22:24:55Z ARTIFICER 564804 Importing default loadout GadgetDefinition application/json { "settings": { "section": "", "package": true, "default": true, "hidden": false, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [], "namespaces": [ -1 ], "contentModels": [], "rights": [ "edit", "upload" ] }, "module": { "pages": [ "main.js" ], "dependencies": [ "jquery", "mediawiki.util" ], "type": "general" } } 13bc1e984c367575a7b4f4ac29d2cf75b4f01c6c MediaWiki:Gadgets/purge 8 270 294 2025-04-09T22:24:55Z ARTIFICER 564804 Importing default loadout GadgetDefinition application/json { "settings": { "section": "", "package": true, "default": true, "hidden": false, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [], "namespaces": [], "contentModels": [], "rights": [ "edit" ] }, "module": { "pages": [ "main.js" ], "dependencies": [ "mediawiki.util", "mediawiki.api" ], "type": "general" } } af2694fd57147735a6bfbca7f9d483ff0dff31c6 MediaWiki:Gadgets/ranger/custom.css 8 271 295 2025-04-09T22:24:56Z ARTIFICER 564804 Importing default loadout css text/css /* Custom RANGER styles can go here. Rules here will override rules of equal specificity in main.css */ 769d3248cef93d2b58dcf7339da923494f5173f8 MediaWiki:Gadgets/vectorScripts 8 272 296 2025-04-09T22:24:56Z ARTIFICER 564804 Importing default loadout GadgetDefinition application/json { "settings": { "section": "", "package": true, "default": true, "hidden": true, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [], "namespaces": [], "contentModels": [], "rights": [], "skins": [ "vector" ] }, "module": { "pages": [ "main.js" ], "dependencies": [], "type": "general" } } f26fca963d213febee869477a05933a6fedfc542 MediaWiki:Gadgets/vectorScripts/main.js 8 273 297 2025-04-09T22:24:57Z ARTIFICER 564804 Importing default loadout javascript text/javascript /*** Mobile navigation toggle button ***/ $( function () { const BUTTON_CLASS = 'mobile-nav-toggle' if (document.querySelector('button.' + BUTTON_CLASS)){return;} // early return to avoid double button if this runs twice let mobileSidebarButton = document.createElement( 'button' ); mobileSidebarButton.className = BUTTON_CLASS; mobileSidebarButton.addEventListener( 'click', function () { mobileSidebarButton.classList.toggle( 'nav--expanded' ); } ); document.body.classList.add( 'has-vector-mobile-menu' ); document.getElementById( 'mw-panel' ).prepend( mobileSidebarButton ); } ); /*** End mobile navigation toggle button ***/ e69af46fab43eebe82af8fb8de4b57f27b1f59e6 MediaWiki:Gadgets/craftingScripts 8 274 298 2025-04-09T23:16:08Z RheingoldRiver 2743 Adding default set of pages GadgetDefinition application/json { "settings": { "section": "", "default": true, "hidden": true, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [ "Has crafting" ], "namespaces": [], "contentModels": [], "rights": [] }, "module": { "pages": [ "main.js" ], "dependencies": [], "type": "general" } } ee183d900d885097e87d076a521e0df4d76dfceb MediaWiki:Gadgets/craftingScripts/main.js 8 275 299 2025-04-09T23:16:09Z RheingoldRiver 2743 Adding default set of pages javascript text/javascript /** * Element animator * * Cycles through a set of elements (or "frames") on a 2 second timer per frame * Add the "animated" class to the frame containing the elements to animate. * Optionally, add the "animated-active" class to the frame to display first. * Optionally, add the "animated-subframe" class to a frame, and the * "animated-active" class to a subframe within, in order to designate a set of * subframes which will only be cycled every time the parent frame is displayed. * Animations with the "animated-paused" class will be skipped each interval. */ ( function() { var $content = $( '#mw-content-text' ); // Helper function: advance the "animated-active" class to the next sibling var advanceFrame = function( parentElem, parentSelector ) { var curFrame = parentElem.querySelector( parentSelector + ' > .animated-active' ); $( curFrame ).removeClass( 'animated-active' ); var $nextFrame = $( curFrame && curFrame.nextElementSibling || parentElem.firstElementChild ); return $nextFrame.addClass( 'animated-active' ); }; // Check if the tab is hidden (stop animating if user is in another tab) var hidden; if ( typeof document.hidden !== 'undefined' ) { hidden = 'hidden'; } else if ( typeof document.msHidden !== 'undefined' ) { hidden = 'msHidden'; } else if ( typeof document.webkitHidden !== 'undefined' ) { hidden = 'webkitHidden'; } // Every 2 seconds, cycle through each .animated element setInterval( function() { // If the document is hidden, skip animating if ( hidden && document[hidden] ) { return; } // For each .animated container... $content.find( '.animated' ).each( function() { // Skip if .animated-paused is present if ( $( this ).hasClass( 'animated-paused' ) ) { return; } // Advance the main frame var $nextFrame = advanceFrame( this, '.animated' ); // If the new active frame is itself a .animated-subframe, advance that too if ( $nextFrame.hasClass( 'animated-subframe' ) ) { advanceFrame( $nextFrame[0], '.animated-subframe' ); } } ); }, 2000 ); }() ); /** * Set minimum height for animations to prevent moving the page if the frames differ in height */ ( function() { // Mark them visible for a moment to measure var $animated = $( '.animated' ).addClass( 'animated-visible' ); var animateds = []; $animated.each( function() { animateds.push( { $: $( this ).find( '> .animated-subframe' ).addBack() .find( '> *:not(.animated-subframe)' ), } ); } ); // Find max height among sibling frames $.each( animateds, function() { var minHeight = 0, differentHeights; this.$.each( function() { var height = this.offsetHeight; differentHeights = differentHeights || ( minHeight && height !== minHeight ); minHeight = Math.max( height, minHeight ); } ); if ( differentHeights ) { this.height = minHeight; } } ); // Apply min-height, then hide them again $animated.each( function( i ) { $( this ).css( 'min-height', animateds[i].height ); } ).removeClass( 'animated-visible' ); // Optional lazy-loading for all frames once the animation is in view var animatedObserver = new IntersectionObserver( function( entries ) { entries.forEach( function( entry ) { if ( entry.isIntersecting && !entry.target.classList.contains( 'animated-lazyloaded' ) ) { $( entry.target ).find( 'img' ).attr( 'loading', 'eager' ); entry.target.classList.add( 'animated-lazyloaded' ); animatedObserver.unobserve( entry.target ); } } ); } ); $animated.each( function() { animatedObserver.observe( this ); } ); }() ); document.addEventListener("DOMContentLoaded", function() { var hideTemplate = document.querySelector('.hide-content-template'); if (hideTemplate) { // Hide all other content var bodyChildren = document.body.children; for (var i = 0; i < bodyChildren.length; i++) { var child = bodyChildren[i]; if (!child.classList.contains('hide-content-template')) { child.style.display = 'none'; } } // Optionally, style the template container hideTemplate.style.position = 'relative'; hideTemplate.style.zIndex = '1000'; hideTemplate.style.background = 'white'; hideTemplate.style.padding = '20px'; hideTemplate.style.border = '2px solid #f00'; } }); /** * Creates Minecraft-style tooltips * * Replaces normal tooltips. Supports Minecraft [[formatting codes]] (except k), and a description with line breaks (/). */ ( function() { var escapeChars = { '\\&': '&#38;', '<': '&#60;', '>': '&#62;' }; var escape = function( text ) { // "\" must be escaped first return text.replace( /\\\\/g, '&#92;' ) .replace( /\\&|[<>]/g, function( char ) { return escapeChars[char]; } ); }; var $tooltip = $(); var $win = $( window ), winWidth, winHeight, width, height; $( '#mw-content-text' ).on( { 'mouseenter.minetip': function( e ) { $tooltip.remove(); var $elem = $( this ), title = $elem.attr( 'data-minetip-title' ); if ( title === undefined ) { title = $elem.attr( 'title' ); if ( title !== undefined ) { title = $.trim( title.replace( /&/g, '\\&' ) ); $elem.attr( 'data-minetip-title', title ); } } // No title or title only contains formatting codes if ( title === undefined || title !== '' && title.replace( /&([0-9a-jl-qs-vyzr]|#[0-9a-fA-F]{6}|\$[0-9a-fA-F]{3})/g, '' ) === '' ) { // Find deepest child title var childElem = $elem[0], childTitle; do { if ( childElem.hasAttribute( 'title' ) ) { childTitle = childElem.title; } childElem = childElem.firstChild; } while( childElem && childElem.nodeType === 1 ); if ( childTitle === undefined ) { return; } // Append child title as title may contain formatting codes if ( !title ) { title = ''; } title += $.trim( childTitle.replace( /&/g, '\\&' ) ); // Set the retrieved title as data for future use $elem.attr( 'data-minetip-title', title ); } if ( !$elem.data( 'minetip-ready' ) ) { // Remove title attributes so the native tooltip doesn't get in the way $elem.find( '[title]' ).addBack().removeAttr( 'title' ); $elem.data( 'minetip-ready', true ); } if ( title === '' ) { return; } var content = '<span class="minetip-title">' + escape( title ) + '&r</span>'; var description = $.trim( $elem.attr( 'data-minetip-text' ) ); if ( description ) { // Apply normal escaping plus "/" description = escape( description ).replace( /\\\//g, '&#47;' ); content += '<span class="minetip-description">' + description.replace( /\//g, '<br>' ) + '&r</span>'; } // Add classes for Minecraft formatting codes while ( content.search( /&(?:[0-9a-jl-qs-vyz]|#[0-9a-fA-F]{6}|\$[0-9a-fA-F]{3})/ ) > -1 ) { content = content.replace( /&([0-9a-jl-qs-vyz])(.*?)(&r|$)/g, '<span class="format-$1">$2</span>&r' ); content = content.replace( /&(?:#([0-9a-fA-F]{6})|\$([0-9a-fA-F]{3}))(.*?)(&r|$)/g, '<span class="format-custom" style="color: #$1$2;">$3</span>&r' ); } // Remove reset formatting content = content.replace( /&r/g, '' ); $tooltip = $( '<div id="minetip-tooltip">' ); $tooltip.html( content ).appendTo( 'body' ); // Cache current window and tooltip size winWidth = $win.width(); winHeight = $win.height(); width = $tooltip.outerWidth( true ); height = $tooltip.outerHeight( true ); // Trigger a mouse movement to position the tooltip $elem.trigger( 'mousemove', e ); }, 'mousemove.minetip': function( e, trigger ) { if ( !$tooltip.length ) { $( this ).trigger( 'mouseenter' ); return; } // Get event data from remote trigger e = trigger || e; // Get mouse position and add default offsets var top = e.clientY - 34; var left = e.clientX + 14; // If going off the right of the screen, go to the left of the cursor if ( left + width > winWidth ) { left -= width + 36; } // If now going off to the left of the screen, resort to going above the cursor if ( left < 0 ) { left = 0; top -= height - 22; // Go below the cursor if too high if ( top < 0 ) { top += height + 47; } // Don't go off the top of the screen } else if ( top < 0 ) { top = 0; // Don't go off the bottom of the screen } else if ( top + height > winHeight ) { top = winHeight - height; } // Apply the positions $tooltip.css( { top: top, left: left } ); }, 'mouseleave.minetip': function() { if ( !$tooltip.length ) { return; } $tooltip.remove(); $tooltip = $(); } }, '.minetip, .invslot-item' ); }() ); 2f22ce6a681d32240642e42d0bcd26809c863260 MediaWiki:Gadgets/craftingStyles 8 276 300 2025-04-09T23:16:09Z RheingoldRiver 2743 Adding default set of pages GadgetDefinition application/json { "settings": { "section": "", "default": true, "hidden": true, "supportsUrlLoad": false }, "loadConditions": { "actions": [], "categories": [ "Has crafting" ], "namespaces": [], "contentModels": [], "rights": [] }, "module": { "pages": [ "main.css" ], "dependencies": [], "type": "styles" } } aafd487dcabec6d274424ddd58e20cad32210803 MediaWiki:Gadgets/craftingStyles/main.css 8 277 301 2025-04-09T23:16:10Z RheingoldRiver 2743 Adding default set of pages css text/css @import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap'); @font-face { font-family: 'Minecraft'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://commons.wiki.gg/images/c/c4/JDGraphics_Minecraft.otf?20240102) format('opentype'); /**[[File:JDGraphics_Minecraft.otf]]*/ } /** Template stylings **/ /* [[Template:Inventory slot]] */ .invslot { box-sizing: unset; position: relative; display: inline-block; background: #8B8B8B no-repeat center center / 32px 32px; border: 2px solid; border-color: #373737 #FFF #FFF #373737; width: 32px; height: 32px; font-size: 16px; line-height: 1; text-align: left; vertical-align: bottom; } .invslot::before, .invslot::after { content: ""; position: absolute; background-color: #8B8B8B; height: 2px; width: 2px; pointer-events: none; } .invslot::before { bottom: -2px; left: -2px; } .invslot::after { top: -2px; right: -2px; } .invslot-large { padding: 8px; } .invslot-item, .invslot-item a:first-child { position: relative; display: block; margin: -2px; padding: 2px; width: 32px; height: 32px; } /* [[File:Grid Unknown.png]] */ .invslot-item-image a.new:first-child { background: url('https://minecraft.wiki/images/Grid_Unknown.png') no-repeat content-box; width: 32px; height: 32px; text-indent: -9999px; overflow: hidden; } /* Styling for tooltip */ .explain { border-bottom: 0; text-decoration: underline dotted; cursor: help; } /* Show help cursor when an abbr element has a title attribute */ abbr[title] { cursor: help; } /* Styling for minecraft style tooltip */ #minetip-tooltip { position: fixed; top: 0; left: 0; background-color: #100010; background-color: rgba(16, 0, 16, 0.94); padding: 0.375em; font-family: Minecraft, sans-serif; font-size: 16px; word-spacing: 4px; white-space: nowrap; line-height: 1.25em; margin: 0.125em 0.25em; pointer-events: none; z-index: 9999; } #minetip-tooltip::before { content: ""; position: absolute; top: 0.125em; right: -0.125em; bottom: 0.125em; left: -0.125em; border: 0.15em solid #100010; border-style: none solid; border-color: rgba(16, 0, 16, 0.94); } #minetip-tooltip::after { content: ""; position: absolute; top: 0.125em; right: 0; bottom: 0.125em; left: 0; border: 0.125em solid #2D0A63; border-image: -webkit-linear-gradient(rgba(80, 0, 255, 0.31), rgba(40, 0, 127, 0.31)) 1; border-image: linear-gradient(rgba(80, 0, 255, 0.31), rgba(40, 0, 127, 0.31)) 1; } #minetip-tooltip > .description, #minetip-tooltip > .minetip-description { display: block; margin-top: 0.25em; } /* Classes corresponding to Minecraft formatting codes */ .format-0 { color: #000; text-shadow: 0.125em 0.125em 0 #000; } .format-1 { color: #0000A8; text-shadow: 0.125em 0.125em 0 #00002A; } .format-2 { color: #00A800; text-shadow: 0.125em 0.125em 0 #002A00; } .format-3 { color: #00A8A8; text-shadow: 0.125em 0.125em 0 #002A2A; } .format-4 { color: #A80000; text-shadow: 0.125em 0.125em 0 #2A0000; } .format-5 { color: #A800A8; text-shadow: 0.125em 0.125em 0 #2A002A; } .format-6 { color: #FBA800; text-shadow: 0.125em 0.125em 0 #3E2A00; } .format-7 { color: #A8A8A8; text-shadow: 0.125em 0.125em 0 #2A2A2A; } .format-8 { color: #545454; text-shadow: 0.125em 0.125em 0 #151515; } .format-9 { color: #5454FB; text-shadow: 0.125em 0.125em 0 #15153E; } .format-a { color: #54FB54; text-shadow: 0.125em 0.125em 0 #153E15; } .format-b { color: #54FBFB; text-shadow: 0.125em 0.125em 0 #153E3E; } .format-c { color: #FB5454; text-shadow: 0.125em 0.125em 0 #3E1515; } .format-d { color: #FB54FB; text-shadow: 0.125em 0.125em 0 #3E153E; } .format-e { color: #FBFB54; text-shadow: 0.125em 0.125em 0 #3E3E15; } .format-f, #minetip-tooltip { color: #FBFBFB; text-shadow: 0.125em 0.125em 0 #3E3E3E; } .format-g { color: #DDD605; text-shadow: 0.125em 0.125em 0 #373501; } .format-h { color: #E3D4D1; text-shadow: 0.125em 0.125em 0 #383534; } .format-i { color: #CECACA; text-shadow: 0.125em 0.125em 0 #333232; } .format-j { color: #443A3B; text-shadow: 0.125em 0.125em 0 #110E0E; } .format-l { font-weight: bold; letter-spacing: 0.125em; } .format-m { text-decoration: line-through; } .format-n { text-decoration: underline; } .format-o { font-style: italic; } .format-p { color: #DEB12D; text-shadow: 0.125em 0.125em 0 #372C0B; } .format-q { color: #47A036; text-shadow: 0.125em 0.125em 0 #04280D; } .format-s { color: #2CBAA8; text-shadow: 0.125em 0.125em 0 #0B2E2A; } .format-t { color: #21497B; text-shadow: 0.125em 0.125em 0 #08121E; } .format-u { color: #9A5CC6; text-shadow: 0.125em 0.125em 0 #261731; } .format-v { color: #EB7114; text-shadow: 0.125em 0.125em 0 #3B1D05; } /* Custom color codes because Β§m and Β§n are used twice. */ .format-y { color: #971607; text-shadow: 0.125em 0.125em 0 #250501; } .format-z { color: #B4684D; text-shadow: 0.125em 0.125em 0 #2D1A13; } /* Try to use nearest neighbour scaling for pixelated images */ .mcwiki-header-grass, .ns-special .gallerybox img, .ns-14 .gallerybox img, .filehistory a img, .pixel-image, .invslot-item-image, .sprite { image-rendering: optimizeSpeed; image-rendering: -webkit-optimize-contrast; image-rendering: optimize-contrast; image-rendering: -moz-crisp-edges; image-rendering: -o-crisp-edges; image-rendering: crisp-edges; image-rendering: pixelated; -ms-interpolation-mode: nearest-neighbor; } .invslot-stacksize { position: absolute; right: 0; bottom: 0; font-family: Minecraft, serif; !important; font-weight: normal !important; color: #FFF !important; text-shadow: 2px 2px 0 #3F3F3F; filter: dropshadow(color=#3F3F3F, offx=2, offy=2); z-index: 2; } /* Plain slot with no border or background */ .invslot-plain { background-color: transparent; border: 0; } .invslot-plain::before, .invslot-plain::after { content: none; } .invslot-plain > .invslot-item, .invslot-plain > .invslot-item a:first-child { margin: 0; padding: 0; } /* Default background images: [[File:Grid layout Head Empty.png]], [[File:Grid layout Chest Empty.png]], [[File:Grid layout Legs Empty.png]], [[File:Grid layout Feet Empty.png]], [[File:Grid layout Offhand Empty.png]], [[File:Grid layout Smithing Empty.png]], [[File:Grid layout Brewing Empty.png]], [[File:Grid layout Brewing Fuel Empty.png]] */ .invslot-default-head { background-image: url('https://minecraft.wiki/images/Grid_layout_Head_Empty.png'); } .invslot-default-chest { background-image: url('https://minecraft.wiki/images/Grid_layout_Chest_Empty.png'); } .invslot-default-legs { background-image: url('https://minecraft.wiki/images/Grid_layout_Legs_Empty.png'); } .invslot-default-feet { background-image: url('https://minecraft.wiki/images/Grid_layout_Feet_Empty.png'); } .invslot-default-offhand { background-image: url('https://minecraft.wiki/images/Grid_layout_Offhand_Empty.png'); } .invslot-default-smithing { background-image: url('https://minecraft.wiki/images/Grid_layout_Smithing_Empty.png'); } .invslot-default-brewing { background-image: url('https://minecraft.wiki/images/Grid_layout_Brewing_Empty.png'); } .invslot-default-brewing-fuel { background-image: url('https://minecraft.wiki/images/Grid_layout_Brewing_Fuel_Empty.png'); } /* [[Template:hp]] */ .mc-hearts::before { content: ' ('; } .mc-hearts::after { content: ')'; } /* Generic Minecraft interface styling: [[Module:UI]] */ .mcui { display: inline-block; position: relative; background-color: #C6C6C6; border: 2px solid; border-color: #DBDBDB #5B5B5B #5B5B5B #DBDBDB; padding: 6px; text-align: left; white-space: nowrap; vertical-align: bottom; } .mcui-Crafting_Table > *, .mcui-Furnace > * { display: inline-block; vertical-align: top; } /* [[Template:Crafting Table]]: [[File:Grid layout Arrow (small).png]], [[File:Grid layout Shapeless.png]], [[File:Grid layout Fixed.png]] */ .mcui-Crafting_Table .mcui-row { display: block; } .mcui-Crafting_Table > .mcui-arrow { background: url('https://minecraft.wiki/images/Grid_layout_Arrow_%28small%29.png') no-repeat; width: 32px; height: 26px; margin: 40px 4px 0; } .mcui-Crafting_Table > .mcui-output { margin-top: 28px; } .mcui-Crafting_Table > .mcui-icons { position: absolute; top: 6px; right: 6px; } .mcui-Crafting_Table .mcui-shapeless, .mcui-Crafting_Table .mcui-fixed { display: inline-block; background-repeat: no-repeat; width: 19px; height: 15px; cursor: help; } .mcui-Crafting_Table .mcui-shapeless { background-image: url('https://minecraft.wiki/images/Grid_layout_Shapeless.png'); } .mcui-Crafting_Table .mcui-fixed { background-image: url('https://minecraft.wiki/images/Grid_layout_Fixed.png'); } /* [[Template:Furnace]]: [[File:Grid layout Fire.png]], [[File:Grid layout Fire (in-active).png]] [[File:Grid layout Furnace Progress.png]], [[File:Grid layout Furnace Progress (in-active).png]] */ .mcui-Furnace .mcui-fuel { display: block; background: url('https://minecraft.wiki/images/Grid_layout_Fire.png') no-repeat; width: 36px; height: 36px; } .mcui-Furnace .mcui-fuel.mcui-inactive { background-image: url('https://minecraft.wiki/images/Grid_layout_Fire_%28in-active%29.png'); } .mcui-Furnace > .mcui-arrow { background: url('https://minecraft.wiki/images/Grid_layout_Furnace_Progress.png') no-repeat; width: 44px; height: 32px; margin: 36px 18px 0 14px; } .mcui-Furnace > .mcui-arrow.mcui-inactive, .mcui-Inventory-Crafting_Table-arrow { background-image: url('https://minecraft.wiki/images/Grid_layout_Furnace_Progress_%28in-active%29.png'); } .mcui-Furnace > .mcui-output { margin-top: 28px; } .mcui-Furnace > .mcui-experience { position: absolute; top: 92px; left: 108px; text-align: center; width: 70px; } .mcui-Furnace .mcui-experience-orb { display: inline-block; margin-top: 3px; width: 16px; height: 16px; vertical-align: top; background-size: 16px 16px; } .mcui-Furnace .mcui-experience-text { display: inline-block; vertical-align: top; font-family: Minecraft, sans-serif; font-size: 16px; color: #404040; } /* [[Template:Brewing Stand]]: [[File:Grid layout Brewing Bubbles.gif]], [[File:Grid layout Brewing Bubbles (In-active).png]], [[File:Grid layout Brewing Arrow.png]], [[File:Grid layout Brewing Arrow (In-active).png]], [[File:Grid layout Brewing Paths.png]], [[File:Grid layout Brewing Empty.png]] */ .mcui-Brewing_Stand > * { display: block; } .mcui-Brewing_Stand .invslot { vertical-align: top; } .mcui-Brewing_Stand > .mcui-input { text-align: center; } .mcui-Brewing_Stand > .mcui-input > .invslot { margin-top: 3px; } .mcui-Brewing_Stand .mcui-bubbling, .mcui-Brewing_Stand .mcui-arrow { display: inline-block; background-repeat: no-repeat; width: 24px; height: 57px; } .mcui-Brewing_Stand .mcui-bubbling, .mcui-Inventory-Brewing_Stand-bubbles { background-image: url('https://minecraft.wiki/images/Grid_layout_Brewing_Bubbles.gif'); } .mcui-Brewing_Stand > .mcui-input.mcui-inactive > .mcui-bubbling, .mcui-Inventory-Brewing_Stand-bubbles-inactive { background-image: url('https://minecraft.wiki/images/Grid_layout_Brewing_Bubbles_%28In-active%29.png'); } .mcui-Brewing_Stand .mcui-arrow, .mcui-Inventory-Brewing_Stand-arrow { background-image: url('https://minecraft.wiki/images/Grid_layout_Brewing_Arrow.png'); } .mcui-Brewing_Stand > .mcui-input.mcui-inactive > .mcui-arrow, .mcui-Inventory-Brewing_Stand-arrow-inactive { background-image: url('https://minecraft.wiki/images/Grid_layout_Brewing_Arrow_%28In-active%29.png'); } .mcui-Brewing_Stand > .mcui-paths { position: relative; background: url('https://minecraft.wiki/images/Grid_layout_Brewing_Paths.png') no-repeat; width: 60px; height: 40px; margin: -20px auto -16px; z-index: 1; } .mcui-Brewing_Stand .mcui-output .invslot { background-image: url('https://minecraft.wiki/images/Grid_layout_Brewing_Empty.png'); } .mcui-Brewing_Stand .mcui-output2 { margin: 14px 10px 0; } /* [[Template:Anvil]]: [[File:Anvil Hammer.png]], [[File:Anvil Plus.png]], [[File:Anvil_GUI_bar.png]], [[File:Anvil_GUI_bar_(in-active).png]], [[File:Grid layout Anvil crossed.png]], [[File:Grid layout Furnace Progress (in-active).png]] */ .mcui-Anvil > .mcui-hammer, .mcui-Inventory-Anvil-hammer { background-image: url('https://minecraft.wiki/images/Anvil_Hammer.png'); } .mcui-Smithing_Table > .mcui-plus, .mcui-Anvil > .mcui-plus, .mcui-Inventory-Anvil-plus { background-image: url('https://minecraft.wiki/images/Anvil_Plus.png'); } .mcui-Anvil > .mcui-input, .mcui-Inventory-Anvil-input { background-image: url('https://minecraft.wiki/images/Anvil_GUI_bar.png'); } .mcui-Anvil > .mcui-input.mcui-inactive, .mcui-Inventory-Anvil-input-inactive { background-image: url('https://minecraft.wiki/images/Anvil_GUI_bar_%28in-active%29.png'); } .mcui-Smithing_Table > .mcui-arrow, .mcui-Anvil > .mcui-arrow, .mcui-Inventory-Anvil-arrow { background-image: url('https://minecraft.wiki/images/Grid_layout_Furnace_Progress_%28in-active%29.png'); background-position-y: -2px; } .mcui-Smithing_Table > .mcui-arrow.mcui-inactive, .mcui-Anvil > .mcui-arrow.mcui-inactive, .mcui-Inventory-Anvil-arrow-inactive { background-image: url('https://minecraft.wiki/images/Grid_layout_Anvil_crossed.png'); background-position-y: unset; } /* [[Template:Smithing Table]], [[Template:Legacy Smithing Table]]: [[File:Smithing Table Hammer_JE2.png]] [[File:Smithing Table Hammer_JE1_BE1.png]] */ .mcui-Smithing_Table > .mcui-hammer, .mcui-Inventory-Smithing_Table-hammer { background-image: url('https://minecraft.wiki/images/Smithing_Table_Hammer_JE2.png'); } .mcui-Smithing_Table > .mcui-hammer-legacy { background-image: url('https://minecraft.wiki/images/Smithing_Table_Hammer_JE1_BE1.png'); } /* [[Template:Hotbar]]: [[File:Hotbar.png]], [[File:Hotbar selector.png]] */ .mcui-Hotbar { display: inline-block; position: relative; border: 0; padding: 0; background-color: transparent; } .mcui-Hotbar > .mcui-selector { position: absolute; top: -2px; margin-left: -2px; } .mcui-Hotbar > .mcui-slots { position: absolute; top: 0; left: 0; margin: 2px; } .mcui-Hotbar .invslot { margin: 4px; } .mcui-Hotbar-image { background: url('https://minecraft.wiki/images/Hotbar.png') no-repeat; } .mcui-Hotbar-image-selected { background: url('https://minecraft.wiki/images/Hotbar_selector.png') no-repeat; } /* [[Template:Loom]] */ .mcui-Loom > * { display: inline-block; vertical-align: top; } .mcui-Loom > .mcui-tapestry { background: url('https://minecraft.wiki/images/Grid_layout_Loom.png') no-repeat; width: 98px; height: 108px; } .mcui-Loom > .mcui-loomArrow { background: url('https://minecraft.wiki/images/Grid_layout_Loom_Arrow.png') no-repeat; width: 54px; height: 54px; margin: 28px 4px 0 4px; } .mcui-Loom > .mcui-output { margin-top: 38px; } .mcui-Loom .mcui-inputBanner { margin: 22px 10px; position: absolute; } .mcui-Loom .mcui-inputDye { margin: 22px 50px; position: absolute; } .mcui-Loom .mcui-inputPattern { margin: 60px 30px; position: absolute; } .mcui-Loom .mcui-bannerSprite { margin-left: 4px; } /* [[Template:Grindstone]] */ .mcui-Grindstone > * { display: inline-block; vertical-align: top; } .mcui-Grindstone > .mcui-grindstone { background: url('https://minecraft.wiki/images/Grid_layout_Grindstone.png') no-repeat; width: 108px; height: 112px; } .mcui-Grindstone .mcui-input1 { margin: 6px 36px; position: absolute; } .mcui-Grindstone .mcui-input2 { margin: 48px 36px; position: absolute; } .mcui-Grindstone > .mcui-arrow { background: url('https://minecraft.wiki/images/Grid_layout_Furnace_Progress_%28in-active%29.png') no-repeat; width: 44px; height: 34px; margin: 36px 22px 0 22px; } .mcui-Grindstone > .mcui-output { margin-top: 34px; } /* [[Template:Stonecutter]] */ .mcui-Stonecutter > * { display: inline-block; vertical-align: top; } .mcui-Stonecutter > .mcui-stonecutterArrow { background: url('https://minecraft.wiki/images/Grid_layout_Stonecutter_Arrow.png') no-repeat; width: 58px; height: 60px; margin: 9px 4px 0 4px; } .mcui-Stonecutter > .mcui-output { margin: 28px 0 28px 0; } .mcui-Stonecutter > .mcui-input { margin-top: 36px; } .mcui-Stonecutter .mcui-stonecutterSprite { margin: 4px 0 0 5px; } /* [[Template:Inventory]]: [[File:Steve inventory.png]] [[File:Grid layout Recipe Book Button.png]], [[File:Grid layout Arrow (small).png]], [[File:Grid layout Fire.png]], [[File:Grid layout Fire (inactive).png]], [[File:Grid layout Furnace Progress.png]], [[File:Grid layout Furnace Progress (inactive).png]], [[File:Grid layout Brewing Pipes.png]], [[File:Grid layout Brewing Paths Long.png]], [[File:Grid layout Brewing Fuel.png]], [[File:Inventory background.png]] */ .mcui-Inventory-Player-Steve { background-image: url('https://minecraft.wiki/images/Steve_inventory.png'); } .mcui-Inventory-Recipe_Book-button { background-image: url('https://minecraft.wiki/images/Grid_layout_Recipe_Book_Button.png'); } .mcui-Inventory-Table-arrow { background-image: url('https://minecraft.wiki/images/Grid_layout_Arrow_%28small%29.png'); } .mcui-Inventory-Furnace-fire { background-image: url('https://minecraft.wiki/images/Grid_layout_Fire.png'); } .mcui-Inventory-Furnace-fire-inactive { background-image: url('https://minecraft.wiki/images/Grid_layout_Fire_%28in-active%29.png'); } .mcui-Inventory-Furnace-progress { background-image: url('https://minecraft.wiki/images/Grid_layout_Furnace_Progress.png'); } .mcui-Inventory-Furnace-progress-inactive { background-image: url('https://minecraft.wiki/images/Grid_layout_Furnace_Progress_%28in-active%29.png'); } .mcui-Inventory-Brewing_Stand-pipes { background-image: url('https://minecraft.wiki/images/Grid_layout_Brewing_Pipes.png'); } .mcui-Inventory-Brewing_Stand-paths { background-image: url('https://minecraft.wiki/images/Grid_layout_Brewing_Paths_Long.png'); } .mcui-Inventory-Brewing_Stand-fuel { background-image: url('https://minecraft.wiki/images/Grid_layout_Brewing_Fuel.png'); } .mcui-Inventory-border { -webkit-border-image: url('https://minecraft.wiki/images/Inventory_background.png') 4 fill repeat; -moz-border-image: url('https://minecraft.wiki/images/Inventory_background.png') 4 fill repeat; -o-border-image: url('https://minecraft.wiki/images/Inventory_background.png') 4 fill repeat; border-image: url('https://minecraft.wiki/images/Inventory_background.png') 4 fill repeat; } .wikitable.crafting *, .wikitable.crafting:after, .wikitable.crafting:before { -webkit-box-sizing: unset; box-sizing: unset; } 9c14cc0a47b2f1de7a56da103f16d57f004fd162 MediaWiki:Gadgets/ranger/main.css 8 242 302 266 2025-04-09T23:16:13Z RheingoldRiver 2743 Adding default set of pages css text/css /** as of Module:navbox version 1.2.2 **/ .ranger-navbox{ border-color: var(--navbox-outer-border-color); border-style: var(--navbox-outer-border-style); border-width: var(--navbox-outer-border-width); border-radius: var(--navbox-outer-border-radius); padding: var(--navbox-padding); font-size: var(--navbox-font-size); margin: var(--navbox-margin); background: var(--navbox-background); line-height: 1.5; clear:both; } .ranger-navbox * { border: 0; } .ranger-navbox .center *{ margin-left: unset; margin-right: unset; } .ranger-navbox, .ranger-navbox .ranger-section, .ranger-navbox .ranger-listbox{ display: flex; flex-direction: column; gap: var(--navbox-gap); } .ranger-navbox .ranger-title, .ranger-navbox .ranger-header{ text-align: center; min-height: 1.5em; position: relative; z-index: 0; font-weight: bold; } .ranger-navbox .ranger-title{ color: var(--navbox-title-color); background: var(--navbox-title-background); font-size: var(--navbox-title-font-size); padding: var(--navbox-title-padding--y) calc(1.5em + var(--navbox-icon-offset--x)); /* left and right padding equal to the size and position of the edit/collapse buttons */ } .ranger-navbox .ranger-title a, .ranger-navbox .ranger-title a:visited, .ranger-navbox .ranger-title a:hover, .ranger-navbox .ranger-title a.external, .ranger-navbox .ranger-title a.external:visited, .ranger-navbox .ranger-title a.external:hover { text-decoration: var(--navbox-title-link-decoration); } .ranger-navbox .ranger-title a.new, .ranger-navbox .ranger-title a.new:visited { text-decoration: var(--navbox-title-redlink-decoration); } .ranger-navbox .ranger-title a, .ranger-navbox .ranger-title a.external, .ranger-navbox .ranger-title a.external:visited { color: var(--navbox-title-link-color); } .ranger-navbox .ranger-title a:visited{ color: var(--navbox-title-link-color--visited); } .ranger-navbox .ranger-title a.new, .ranger-navbox .ranger-title a.new:visited{ color:var(--navbox-title-redlink-color); } .ranger-navbox .ranger-title a:hover, .ranger-navbox .ranger-title a:visited:hover, .ranger-navbox .ranger-title a.external:hover, .ranger-navbox .ranger-title a.external:visited:hover { color:var(--navbox-title-link-color--hover); } .ranger-navbox .ranger-header{ color: var(--navbox-header-color); background: var(--navbox-header-background); font-size: var(--navbox-header-font-size); padding: var(--navbox-header-padding--y) calc(1.5em + var(--navbox-icon-offset--x)); /* left and right padding equal to the size and position of the edit/collapse buttons */ } .ranger-navbox .ranger-sublist .ranger-header{ font-size: var(--navbox-subheader-font-size); padding: var(--navbox-subheader-padding--y) calc(1.5em + var(--navbox-icon-offset--x)); /* left and right padding equal to the size and position of the edit/collapse buttons */ } .ranger-navbox .ranger-header a, .ranger-navbox .ranger-header a:visited, .ranger-navbox .ranger-header a:hover, .ranger-navbox .ranger-header a.external, .ranger-navbox .ranger-header a.external:visited, .ranger-navbox .ranger-header a.external:hover { text-decoration: var(--navbox-header-link-decoration); } .ranger-navbox .ranger-header a.new, .ranger-navbox .ranger-header a.new:visited { text-decoration: var(--navbox-header-redlink-decoration); } .ranger-navbox .ranger-header a, .ranger-navbox .ranger-header a.external, .ranger-navbox .ranger-header a.external:visited { color: var(--navbox-header-link-color); } .ranger-navbox .ranger-header a:visited{ color: var(--navbox-header-link-color--visited); } .ranger-navbox .ranger-header a.new, .ranger-navbox .ranger-header a.new:visited{ color:var(--navbox-header-redlink-color); } .ranger-navbox .ranger-header a:hover, .ranger-navbox .ranger-header a:visited:hover, .ranger-navbox .ranger-header a.external:hover, .ranger-navbox .ranger-header a.external:visited:hover { color:var(--navbox-header-link-color--hover); } .ranger-navbox .ranger-meta{ font-size: var(--navbox-title-font-size); position: absolute; left: var(--navbox-icon-offset--x); top: calc(var(--navbox-title-padding--y) + 0.08em); /* 0.08em: vertial offset tweak based on the icon graph */ display: block; } .ranger-navbox .ranger-meta .nv{ --mask: var(--icon-metalinks); display: block; width: 0.84em; /* based on the icon graph */ height: 0.84em; -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-position: center center; mask-position: center center; background-color: var(--navbox-title-icon-color); } .ranger-navbox .ranger-meta .nv > a{ display: block; width: 100%; height: 100%; opacity: 0; } .ranger-navbox .ranger-meta .nv > a > span{ display: block; width: 100%; height: 100%; overflow: hidden; } .ranger-navbox .ranger-meta:has(.mw-selflink){ display: none; } .ranger-navbox, .ranger-navbox .ranger-section{ position: relative; } .ranger .mw-collapsible-toggle-placeholder{ display: none; } .ranger-navbox .ranger-title > .ranger-title-text, .ranger-navbox .ranger-header > .ranger-header-text{ pointer-events: none; } .ranger-navbox .ranger-title > .ranger-title-text a, .ranger-navbox .ranger-header > .ranger-header-text a{ pointer-events: auto; } .ranger-navbox .ranger-title > .mw-collapsible-toggle, .ranger-navbox .ranger-header > .mw-collapsible-toggle{ --mask: var(--icon-chevron-down); position: absolute; right: 0; top: 0; z-index: -1; display: block; width: 100%; height: 100%; overflow:hidden; } .ranger-navbox.small-collapsible-toggle-click-area .ranger-title > .mw-collapsible-toggle, .ranger-navbox.small-collapsible-toggle-click-area .ranger-header > .mw-collapsible-toggle{ width: 1.5em; height: 1.5em; right: var(--navbox-icon-offset--x); } .ranger-navbox.small-collapsible-toggle-click-area .ranger-title > .mw-collapsible-toggle{ top: var(--navbox-title-padding--y); } .ranger-navbox.small-collapsible-toggle-click-area .ranger-header > .mw-collapsible-toggle{ top: var(--navbox-header-padding--y); } .ranger-navbox.small-collapsible-toggle-click-area .ranger-sublist .ranger-header > .mw-collapsible-toggle{ top: var(--navbox-subheader-padding--y); } .ranger-navbox .ranger-title > .mw-collapsible-toggle::before, .ranger-navbox .ranger-header > .mw-collapsible-toggle::before{ content: ""; display: block; width: 1.5em; height: 1.5em; position: absolute; right: var(--navbox-icon-offset--x); -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-position: center center; mask-position: center center; background-color: var(--navbox-title-icon-color); transform: scaleY(-1); } .ranger-navbox .ranger-title > .mw-collapsible-toggle::before{ top: var(--navbox-title-padding--y); } .ranger-navbox .ranger-header > .mw-collapsible-toggle::before{ top: var(--navbox-header-padding--y); } .ranger-navbox .ranger-sublist .ranger-header > .mw-collapsible-toggle::before{ top: var(--navbox-subheader-padding--y); } .ranger-navbox.small-collapsible-toggle-click-area .ranger-title > .mw-collapsible-toggle::before, .ranger-navbox.small-collapsible-toggle-click-area .ranger-header > .mw-collapsible-toggle::before{ top: 0; right: 0; } .ranger-navbox .ranger-header > .mw-collapsible-toggle::before{ background-color: var(--navbox-header-icon-color); } .ranger-navbox .ranger-title > .mw-collapsible-toggle.mw-collapsible-toggle-collapsed::before, .ranger-navbox .ranger-header > .mw-collapsible-toggle.mw-collapsible-toggle-collapsed::before{ transform: none; } .ranger-navbox .ranger-title > .mw-collapsible-toggle *, .ranger-navbox .ranger-title > .mw-collapsible-toggle::after, .ranger-navbox .ranger-header > .mw-collapsible-toggle *, .ranger-navbox .ranger-header > .mw-collapsible-toggle::after{ display: none; } .ranger-navbox .ranger-list{ width: unset; padding: var(--navbox-list-padding); } .ranger-navbox .ranger-above{ background: var(--navbox-above-background); color: var(--navbox-above-color); padding: var(--navbox-above-padding); width: unset; } .ranger-navbox .ranger-below{ background: var(--navbox-below-background); color: var(--navbox-below-color); padding: var(--navbox-below-padding); width: unset; } .ranger-navbox .ranger-sublist{ display: flex; flex-direction: column; gap: var(--navbox-gap); } .ranger-navbox .ranger-section-body{ display: grid; gap: var(--navbox-gap); grid-template-columns: auto minmax(0,1fr); } .ranger-navbox .ranger-row{ display: contents; } .ranger-navbox .ranger-group, .ranger-navbox .ranger-subgroup{ text-align: var(--navbox-group-text-align); white-space: nowrap; font-weight: bold; background: var(--navbox-group-background); color: var(--navbox-group-color); padding: var(--navbox-group-padding); width: unset; } /* for desktop view */ .ranger-navbox.group-align-left .ranger-group, .ranger-navbox.group-align-left .ranger-subgroup{ --navbox-group-text-align: left; } .ranger-navbox.group-align-center .ranger-group, .ranger-navbox.group-align-center .ranger-subgroup{ --navbox-group-text-align: center; } .ranger-navbox.group-align-right .ranger-group, .ranger-navbox.group-align-right .ranger-subgroup{ --navbox-group-text-align: right; } /* for mobile view */ .ranger-navbox.mobile-group-align-left .ranger-group, .ranger-navbox.mobile-group-align-left .ranger-subgroup{ --navbox-group-text-align--mobile: left; } .ranger-navbox.mobile-group-align-center .ranger-group, .ranger-navbox.mobile-group-align-center .ranger-subgroup{ --navbox-group-text-align--mobile: center; } .ranger-navbox.mobile-group-align-right .ranger-group, .ranger-navbox.mobile-group-align-right .ranger-subgroup{ --navbox-group-text-align--mobile: right; } .ranger-navbox .ranger-listbox > .ranger-wrap{ background: var(--navbox-list-background); color: var(--navbox-list-color); flex-grow: 1; } .ranger-navbox .ranger-sublist{ flex-grow: var(--count); } .ranger-navbox .ranger-listbox:first-child{ /* A list-n without group-n */ grid-column-end: span 2; } .ranger-navbox .ranger-group, .ranger-navbox .ranger-subgroup, .ranger-navbox .ranger-listbox > .ranger-wrap{ display: grid; justify-items: stretch; align-items: center; } .ranger-navbox.striped-even .ranger-even, .ranger-navbox.striped-odd .ranger-odd{ background: var(--navbox-list-background--striped); } /* make links use full line height (larger click box)*/ .ranger-navbox .hlist a{ display: inline-block; } .ranger-navbox .align-left, .ranger-navbox .alignleft{ text-align: left; } .ranger-navbox .align-center, .ranger-navbox .aligncenter{ text-align: center; } .ranger-navbox .align-right, .ranger-navbox .alignright{ text-align: right; } /* responsive */ @media screen and (max-width: 720px) { .ranger-navbox .ranger-section-body, .ranger-navbox .ranger-sublist { display: flex; flex-flow: column; } .ranger-navbox .ranger-row{ display: block; } .ranger-navbox .ranger-group + .ranger-listbox > .ranger-sublist:first-child, .ranger-navbox .ranger-subgroup + .ranger-listbox > .ranger-sublist:first-child{ margin-top: var(--navbox-gap); } .ranger-navbox .ranger-listbox.empty{ display: none; } .ranger-navbox .ranger-group, .ranger-navbox .ranger-subgroup{ text-align: var(--navbox-group-text-align--mobile); white-space: normal; } .ranger-navbox .ranger-sublist { padding-left: var(--navbox-tree-indent); margin-left: var(--navbox-tree-line-indent); } .ranger-navbox .ranger-subgroup, .ranger-navbox .ranger-listbox { position:relative; } .ranger-navbox .ranger-group br, .ranger-navbox .ranger-subgroup br{ display: none; } .ranger-navbox .ranger-sublist > .ranger-section > .ranger-header{ margin-left: calc( 0px - var(--navbox-tree-indent) - var(--navbox-tree-line-indent)); } .ranger-navbox .ranger-sublist .ranger-row > ::before{ position: absolute; left: calc(0px - var(--navbox-tree-indent)); top: 0; width: var(--navbox-tree-line-width); height: 100%; content: ''; display: block; background-color: var(--navbox-tree-line-color); } .ranger-navbox .ranger-sublist .ranger-row > .ranger-listbox::before, .ranger-navbox .ranger-row.empty-list > .ranger-subgroup::before{ height: calc(100% + var(--navbox-gap)); } .ranger-navbox .ranger-sublist .ranger-row:last-child > ::before { display: none; } .ranger-navbox .ranger-sublist .ranger-row:last-child > :first-child::before { display: block; height: calc(50% + var(--navbox-tree-line-width)/2); } .ranger-navbox .ranger-subgroup::after, .ranger-navbox .empty-group > .ranger-listbox > .ranger-wrap::after{ position: absolute; left: calc(0px - var(--navbox-tree-indent) + var(--navbox-tree-line-width)); width: calc(var(--navbox-tree-indent) - var(--navbox-tree-line-spacing) - var(--navbox-tree-line-width)); height: var(--navbox-tree-line-width); content: ''; background-color: var(--navbox-tree-line-color); } /* increase height for links */ .ranger-navbox .hlist{ line-height: 2; } } /**** `.pill` class: the "pill" style ****/ /* remove middle dots betweem items */ .ranger-navbox.pill .hlist dd:not(:last-child)::after, .ranger-navbox.pill .hlist li:not(:last-child)::after{ display: none; } /* remove parentheses around nested lists*/ .ranger-navbox.pill .hlist dd ol::before, .ranger-navbox.pill .hlist dd ul::before, .ranger-navbox.pill .hlist dd dl::before, .ranger-navbox.pill .hlist dt ol::before, .ranger-navbox.pill .hlist dt ul::before, .ranger-navbox.pill .hlist dt dl::before, .ranger-navbox.pill .hlist li ol::before, .ranger-navbox.pill .hlist li ul::before, .ranger-navbox.pill .hlist li dl::before, .ranger-navbox.pill .hlist dd ol::after, .ranger-navbox.pill .hlist dd ul::after, .ranger-navbox.pill .hlist dd dl::after, .ranger-navbox.pill .hlist dt ol::after, .ranger-navbox.pill .hlist dt ul::after, .ranger-navbox.pill .hlist dt dl::after, .ranger-navbox.pill .hlist li ol::after, .ranger-navbox.pill .hlist li ul::after, .ranger-navbox.pill .hlist li dl::after { display: none; } /* make lists inline-flex */ .ranger-navbox.pill .hlist ul, .ranger-navbox.pill .hlist ol, .ranger-navbox.pill .hlist dl{ display: inline-flex; gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* "pill" style for items */ .ranger-navbox.pill .hlist li, .ranger-navbox.pill .hlist dt, .ranger-navbox.pill .hlist dd{ padding: var(--navbox-pill-padding); border-radius: var(--navbox-pill-border-radius); box-shadow: var(--navbox-pill-box-shadow); background: var(--navbox-pill-background); /* 100% height */ display: flex; align-items: center; /* for nested lists */ gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* Add a hover / focus feedback style */ .ranger-navbox.pill .hlist dd:hover, .ranger-navbox.pill .hlist dd:focus, .ranger-navbox.pill .hlist dt:hover, .ranger-navbox.pill .hlist dt:focus, .ranger-navbox.pill .hlist li:hover, .ranger-navbox.pill .hlist li:focus { box-shadow: var(--navbox-pill-box-shadow--hover); background: var(--navbox-pill-background--hover); } /* pill with selflink * * Only select the deepest level for nested lists. * We have to use :has() to pick pills with selflink and * all browsers which support :has() should also support :is() and :not(), * therefore we can use :is() and :not() here safely. */ .ranger-navbox.pill .hlist .ranger-list :is(li,dt,dd):has(.mw-selflink):not(:has(li, dt, dd)){ background: var(--navbox-pill-selflink-background); } /**** `.pill-mobile` class: only apply the "pill" style on mobile ****/ @media screen and (max-width: 720px) { /* remove middle dots betweem items */ .ranger-navbox.pill-mobile .hlist dd:not(:last-child)::after, .ranger-navbox.pill-mobile .hlist li:not(:last-child)::after{ display: none; } /* remove parentheses around nested lists*/ .ranger-navbox.pill-mobile .hlist dd ol::before, .ranger-navbox.pill-mobile .hlist dd ul::before, .ranger-navbox.pill-mobile .hlist dd dl::before, .ranger-navbox.pill-mobile .hlist dt ol::before, .ranger-navbox.pill-mobile .hlist dt ul::before, .ranger-navbox.pill-mobile .hlist dt dl::before, .ranger-navbox.pill-mobile .hlist li ol::before, .ranger-navbox.pill-mobile .hlist li ul::before, .ranger-navbox.pill-mobile .hlist li dl::before, .ranger-navbox.pill-mobile .hlist dd ol::after, .ranger-navbox.pill-mobile .hlist dd ul::after, .ranger-navbox.pill-mobile .hlist dd dl::after, .ranger-navbox.pill-mobile .hlist dt ol::after, .ranger-navbox.pill-mobile .hlist dt ul::after, .ranger-navbox.pill-mobile .hlist dt dl::after, .ranger-navbox.pill-mobile .hlist li ol::after, .ranger-navbox.pill-mobile .hlist li ul::after, .ranger-navbox.pill-mobile .hlist li dl::after { display: none; } /* make lists inline-flex */ .ranger-navbox.pill-mobile .hlist ul, .ranger-navbox.pill-mobile .hlist ol, .ranger-navbox.pill-mobile .hlist dl{ display: inline-flex; gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* "pill" style for items */ .ranger-navbox.pill-mobile .hlist li, .ranger-navbox.pill-mobile .hlist dt, .ranger-navbox.pill-mobile .hlist dd{ /* 100% height */ display: flex; align-items: center; /* for nested lists */ gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* "pill" style for items */ .ranger-navbox.pill-mobile .hlist li, .ranger-navbox.pill-mobile .hlist dt, .ranger-navbox.pill-mobile .hlist dd{ padding: var(--navbox-pill-padding); border-radius: var(--navbox-pill-border-radius); box-shadow: var(--navbox-pill-box-shadow); background: var(--navbox-pill-background); /* 100% height */ display: flex; align-items: center; /* for nested lists */ gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* Add a hover / focus feedback style */ .ranger-navbox.pill-mobile .hlist dd:hover, .ranger-navbox.pill-mobile .hlist dd:focus, .ranger-navbox.pill-mobile .hlist dt:hover, .ranger-navbox.pill-mobile .hlist dt:focus, .ranger-navbox.pill-mobile .hlist li:hover, .ranger-navbox.pill-mobile .hlist li:focus { box-shadow: var(--navbox-pill-box-shadow--hover); background: var(--navbox-pill-background--hover); } /* pill with selflink * * Only select the deepest level for nested lists. * We have to use :has() to pick pills with selflink and * all browsers which support :has() should also support :is() and :not(), * therefore we can use :is() and :not() here safely. */ .ranger-navbox.pill-mobile .hlist .ranger-list :is(li,dt,dd):has(.mw-selflink):not(:has(li, dt, dd)){ background: var(--navbox-pill-selflink-background); } } /********************* * End Template:Navbox* **********************/ ef53304ec73d1489fe61b0d50ab8f34bd3a07f55 MediaWiki:Gadgets/ranger/variables.css 8 263 303 287 2025-04-09T23:16:13Z RheingoldRiver 2743 Adding default set of pages css text/css .ranger-navbox{ --navbox-background: none; /* for entire navbox */ --navbox-margin: 0.5em auto; --navbox-padding: 4px; --navbox-gap: 3px; /* when using zero-value, it must be 0px */ --navbox-outer-border-color: var(--wiki-content-border-color--accent); --navbox-outer-border-width: 1px; --navbox-outer-border-style: solid; --navbox-outer-border-radius: 0px; --navbox-font-size: calc(1em - 2px); --navbox-title-color: var(--wiki-accent-label-color); --navbox-title-font-size: calc(125%); --navbox-title-background: var(--wiki-accent-color); --navbox-title-icon-color: var(--wiki-accent-label-color); --navbox-title-link-color: var(--navbox-title-color); --navbox-title-link-color--visited: var(--navbox-title-link-color); --navbox-title-link-color--hover: var(--wiki-accent-link-color); --navbox-title-redlink-color: var(--navbox-title-link-color); --navbox-title-link-decoration: underline solid; --navbox-title-redlink-decoration: underline wavy; --navbox-title-padding--y: 0.5em; --navbox-above-background: color-mix(in srgb, var(--wiki-content-text-color) 15%, transparent); --navbox-above-color: var(--wiki-content-text-color); --navbox-above-padding: var(--navbox-list-padding); --navbox-below-background: var(--navbox-above-background); --navbox-below-color: var(--navbox-above-color); --navbox-below-padding: var(--navbox-above-padding); --navbox-header-color: var(--navbox-title-color); --navbox-header-font-size: calc(110%); --navbox-header-background: var(--navbox-title-background); --navbox-header-icon-color: var(--navbox-title-icon-color); --navbox-header-link-color: var(--navbox-title-link-color); --navbox-header-link-color--visited: var(--navbox-title-link-color--visited); --navbox-header-link-color--hover: var(--navbox-title-link-color--hover); --navbox-header-redlink-color: var(--navbox-title-redlink-color); --navbox-header-link-decoration: var(--navbox-title-link-decoration); --navbox-header-redlink-decoration: var(--navbox-title-redlink-decoration); --navbox-header-padding--y: 0.3em; --navbox-subheader-font-size: calc(100%); --navbox-subheader-padding--y: calc(var(--navbox-header-padding--y)/2); --navbox-list-background: color-mix(in srgb, var(--wiki-content-text-color) 5%, transparent); --navbox-list-background--striped: color-mix(in srgb, var(--wiki-content-text-color) 8%, transparent); --navbox-list-color: var(--wiki-content-text-color); --navbox-list-padding: 0.25em 0.5em; /* --navbox-group-* also apply to .ranger-subgroup */ --navbox-group-text-align: left; --navbox-group-text-align--mobile: left; /* only for mobile view */ --navbox-group-background: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent); --navbox-group-color: var(--wiki-content-text-color); --navbox-group-padding: var(--navbox-list-padding); --navbox-tree-line-color: color-mix(in srgb, var(--wiki-accent-color) 30%, transparent); --navbox-tree-line-width: 2px; --navbox-tree-indent: 1em; --navbox-tree-line-indent: 0.5em; --navbox-tree-line-spacing: var(--navbox-gap); --icon-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-chevron-down' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M6 9l6 6l6 -6'%3E%3C/path%3E%3C/svg%3E"); --icon-metalinks: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-edit' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1'%3E%3C/path%3E%3Cpath d='M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z'%3E%3C/path%3E%3Cpath d='M16 5l3 3'%3E%3C/path%3E%3C/svg%3E"); --navbox-icon-offset--x: 0.5rem; /* should be an absolute length (rem-based or px-based) */ } .ranger-navbox.pill, .ranger-navbox.pill-mobile{ /** vars for the "pill" style only (`.pill` and ".pill-mobile" clases) **/ --navbox-pill-gap: 0.3em; --navbox-pill-padding: 0.25em 0.75em; --navbox-pill-border-radius: 3px; --navbox-pill-box-shadow: none; --navbox-pill-background: color-mix(in srgb, var(--wiki-content-text-color) 5%, transparent); --navbox-pill-box-shadow--hover: inset 0 0 3px var(--navbox-list-color); --navbox-pill-background--hover: var(--navbox-pill-background); --navbox-pill-selflink-background: color-mix(in srgb, var(--wiki-accent-color) 15%, transparent);/* background of pills with selflink in them */ /* remove list cell background */ --navbox-list-background: none; --navbox-list-background--striped: color-mix(in srgb, var(--wiki-content-text-color) 3%, transparent); } .ranger-navbox.no-underline-title-links{ --navbox-title-link-color: var(--wiki-accent-link-color); --navbox-title-link-decoration: none; --navbox-title-redlink-decoration: none; } .ranger-navbox.noborder, .ranger-navbox.no-border{ --navbox-padding: 0px; --navbox-outer-border-width: 0px; } /****************************** * Fallback for older browsers * *******************************/ @supports not (color:color-mix(in srgb, #000, transparent)) { .ranger-navbox { --navbox-above-background: var(--wiki-content-background-color--secondary); --navbox-list-background: transparent; --navbox-list-background--striped: var(--wiki-content-background-color--secondary); --navbox-group-background: var(--wiki-content-background-color--secondary); --navbox-tree-line-color:var(--wiki-content-background-color--secondary); } .ranger-navbox.pill, .ranger-navbox.pill-mobile { --navbox-pill-background: var(--wiki-content-background-color--secondary); --navbox-list-background--striped: transparent; --navbox-pill-selflink-background: var(--wiki-content-background-color--secondary); } } /*************** * End fallback * ****************/ 2985752c4b0bc7060fe0ea7d07e19bfbdd1d3232 Template:Crafting 10 278 304 2025-04-09T23:16:14Z RheingoldRiver 2743 Adding default set of pages wikitext text/x-wiki <includeonly>{{#invoke:crafting|table}}<!-- -->[[Category:Has crafting]]</includeonly> <noinclude> This template was adapted from [https://minecraft.wiki/w/Template:Crafting Template:Crafting] on the Minecraft Wiki. {{documentation}} </noinclude> d86d17f92e67ae558c5acfdfee6184ca3aeef461 Template:Crafting/doc 10 279 305 2025-04-09T23:16:15Z RheingoldRiver 2743 Adding default set of pages wikitext text/x-wiki Using this template, you can create tables like those commonly used in the β€œCrafting” and β€œCrafting ingredient” sections of articles about blocks and items. It can be used similarly to <code>{{Crafting Table}}</code>, except it creates the table for you. By default, the table generates with 3 columns: Name, Ingredients, and the main column containing <code>{{Crafting Table}}</code>. You can set the parameter <code><nowiki>{{{showname=1}}}</nowiki></code> or <code><nowiki>{{{showname=0}}}</nowiki></code> in the first template of the table to show or hide the Name column. To group multiple crafting templates into one table, you also need to set <code><nowiki>{{{head=1}}}</nowiki></code> in the first template of the table, and <code><nowiki>{{{foot=1}}}</nowiki></code> in the last. A 4th column called Description can be added with <code><nowiki>{{{showdescription=1}}}</nowiki></code> and <code><nowiki>{{{description=The description for the recipe}}}</nowiki></code>. Displaying a shapeless recipe can be accomplished by simply leaving out the grid positions for all ingredients. If the recipe is shapeless and uses less than 5 slots, the template will automatically arrange the items into the bottom-left square, indicating that the recipe can be used in the inventory crafting area. If using this template outside of the β€œCrafting” section (e. g. instead of <code>{{Crafting usage}}</code> or together with it), it is '''highly important''' that the <code><nowiki>{{{ignoreusage}}}</nowiki></code> parameter must be set to 1. This will ensure that the template would not be tracked by <code>{{Crafting usage}}</code> which could lead to issues with that template on other articles. Example usage: <pre> {{Crafting |head=1 |B2=Coal |B3=Stick |Output=Torch,4 |showdescription=1 |description=The description cell can contain ''formatted'' text. }} {{Crafting |Blaze Powder |Gunpowder |Coal |Output=Fire Charge,3 }} {{Crafting |A1= Coal |B1= Coal |C1= Coal |A2= Coal |B2= Coal |C2= Coal |A3= Coal |B3= Coal |C3= Coal |Output=Block of Coal }} {{Crafting |name=[[Pickaxe]] |ingredients=[[Stick]]s +<br>[[Planks]] or<br> [[Cobblestone]] or<br>[[Iron Ingot]]s or<br>[[Gold Ingot]]s or<br>[[Diamond]]s |A1=Oak Planks; Cobblestone; Iron Ingot; Gold Ingot; Diamond |B1=Oak Planks; Cobblestone; Iron Ingot; Gold Ingot; Diamond |C1=Oak Planks; Cobblestone; Iron Ingot; Gold Ingot; Diamond |B2=Stick |B3=Stick |Output=Wooden Pickaxe; Stone Pickaxe; Iron Pickaxe; Golden Pickaxe; Diamond Pickaxe |foot=1 }} </pre> produces: {{Crafting |head=1 |B2=Coal |B3=Stick |Output=Torch,4 |showdescription=1 |description=The description cell can contain ''formatted'' text. }} {{Crafting |Blaze Powder |Gunpowder |Coal |Output=Fire Charge,3 }} {{Crafting |A1= Coal |B1= Coal |C1= Coal |A2= Coal |B2= Coal |C2= Coal |A3= Coal |B3= Coal |C3= Coal |Output=Block of Coal }} {{Crafting |name=[[Pickaxe]] |ingredients=[[Stick]]s +<br>[[ Planks]] or<br> [[Cobblestone]] or<br>[[Iron Ingot]]s or<br>[[Gold Ingot]]s or<br>[[Diamond]]s |A1=Oak Planks; Cobblestone; Iron Ingot; Gold Ingot; Diamond |B1=Oak Planks; Cobblestone; Iron Ingot; Gold Ingot; Diamond |C1=Oak Planks; Cobblestone; Iron Ingot; Gold Ingot; Diamond |B2=Stick |B3=Stick |Output=Wooden Pickaxe; Stone Pickaxe; Iron Pickaxe; Golden Pickaxe; Diamond Pickaxe |foot=1 }} == Details == <templatedata> { "params": { "1": { "label": "First ingredient", "description": "First ingredient in a shapeless recipe", "example": "Flint", "type": "string" }, "2": { "label": "Second ingredient", "description": "Second ingredient in a shapeless recipe", "type": "string", "example": "Iron Ingot" }, "3": { "label": "Third ingredient", "description": "Third ingredient in a shapeless recipe", "type": "string" }, "4": { "label": "Fourth ingredient", "description": "Fourth ingredient in a shapeless recipe", "type": "string" }, "5": { "label": "Fifth ingredient", "description": "Fifth ingredient in a shapeless recipe", "type": "string" }, "6": { "label": "Sixth ingredient", "description": "Sixth ingredient in a shapeless recipe", "type": "string" }, "7": { "label": "Seventh ingredient", "description": "Seventh ingredient in a shapeless recipe", "type": "string" }, "8": { "label": "Eighth ingredient", "description": "Eighth ingredient in a shapeless recipe", "type": "string" }, "9": { "label": "Ninth ingredient", "description": "Ninth ingredient in a shapeless recipe", "type": "string" }, "A1": { "label": "Top left slot", "description": "Specifies ingredients in the top left slot", "example": "{Any Planks}; {Any stone-tier block}; Iron Ingot; Gold Ingot; Diamond", "type": "string", "suggested": true }, "B1": { "label": "Top slot", "description": "Specifies ingredients in the top slot", "example": "{Any Planks}; {Any stone-tier block}; Iron Ingot; Gold Ingot; Diamond", "type": "string", "suggested": true }, "C1": { "label": "Top right slot", "description": "Specifies ingredients in the top right slot", "example": "{Any Planks}; {Any stone-tier block}; Iron Ingot; Gold Ingot; Diamond", "type": "string", "suggested": true }, "A2": { "label": "Left slot", "description": "Specifies ingredients in the left slot", "type": "string", "suggested": true }, "B2": { "label": "Middle slot", "description": "Specifies ingredients in the middle slot", "example": "Stick", "type": "string", "suggested": true }, "C2": { "label": "Right slot", "description": "Specifies ingredients in the right slot", "type": "string", "suggested": true }, "A3": { "label": "Bottom left slot", "description": "Specifies ingredients in the bottom left slot", "type": "string", "suggested": true }, "B3": { "label": "Bottom slot", "description": "Specifies ingredients in the bottom slot", "example": "Stick", "type": "string", "suggested": true }, "C3": { "label": "Bottom right slot", "description": "Specifies ingredients in the bottom right slot", "type": "string", "suggested": true }, "shapeless": { "label": "Shapeless recipe override", "description": "Forces shapeless recipe mode if \"top left slot\" and similar parameters are used.", "type": "unknown", "suggestedvalues": [ "1" ], "default": "Shapeless mode is automatically enabled when \"first ingredient\" parameter is used.", "autovalue": "1" }, "fixed": { "label": "Fixed recipe mode", "description": "Enables fixed recipe mode for cases when ingredient layout cannot be mirrored (usually for banners)", "type": "unknown", "suggestedvalues": [ "1" ], "autovalue": "1" }, "Output": { "label": "Recipe output", "description": "Sets the recipe's output. If multiple blocks or items are crafted simultaneously, make sure to specify the number after a comma.", "example": "Wooden Pickaxe; Stone Pickaxe; Iron Pickaxe; Gold Pickaxe; Diamond Pickaxe", "type": "string", "suggested": true }, "notfixed": { "label": "Ingredient that is not fixed", "description": "For fixed recipes, describes the ingredient that can be placed in any free slot as an exception.", "example": "the banner" }, "head": { "label": "Table header", "description": "Sets this template instance as the first one in a sequence.", "suggestedvalues": [ "1" ], "autovalue": "1" }, "foot": { "label": "Table footer", "description": "Sets this template instance as the last one in a sequence.", "suggestedvalues": [ "1" ], "autovalue": "1" }, "showname": { "label": "Name column control", "description": "Controls whether to display the \"name\" column which lists what block(s) or item(s) is/are made by the recipe. Value of 1 makes the column show, any other values disable it. For multi-template tables, only set this parameter in the first template (which as the \"head\" parameter set).", "suggestedvalues": [ "0", "1" ], "default": "The name column is shown by default when the template has the \"head\" parameter set to 1; subsequent templates in the sequence use the first one's value. The column is not shown when the template is standalone.", "autovalue": "1" }, "showdescription": { "label": "Description column control", "description": "Controls whether to display the description column. Value of 1 makes it show, any other values disable it. For multi-template tables, only set this parameter in the first template (which as the \"head\" parameter set).", "suggestedvalues": [ "1" ], "default": "The column is not shown by default. In template sequences, templates use the same value as the first template.", "autovalue": "1" }, "name": { "label": "Name override", "description": "Overrides what is displayed in the Name cell.", "example": "Any Pickaxe (except Netherite)", "type": "content", "default": "The name is inferred automatically from the output slot." }, "description": { "label": "Additional desciption", "description": "Provides an additional description to the recipe, such as edition exclusivity or upcoming version which will add the recipe. Make sure to set the \"showdescription\" parameter, or it will not show.", "type": "content" }, "ingredients": { "label": "Ingredients override", "description": "Overrides what is displayed in the Ingredients cell.", "type": "content", "default": "The ingredients are inferred automatically." }, "ignoreusage": { "label": "Ignored by Crafting usage", "description": "Sets the template to be ignored by the Crafting usage template. This means the recipe will not appear in the \"Crafting ingredient\" subsection of \"Usage\" on other articles. When not using the template inside the \"Crafting\" subsection of \"Obtaining\", this parameter is mandatory to avoid issues with Crafting usage.", "suggestedvalues": [ "1" ], "autovalue": "1" }, "nocat": { "label": "Disable categories", "description": "Sets the template to not add the page to any category. For technical reasons, this will also imply \"ignoreusage\" because Crafting usage relies on hidden categories set by this template.", "suggestedvalues": [ "1" ], "default": "Categories are not added on subarticles or outside of the article namespace.", "autovalue": "1" }, "type": { "label": "Recipe type", "description": "Sets the category for this recipe. If set, the recipe will be automatically added to the corresponding subsection in the Crafting article's \"Complete recipe list\" section. Has no effect if \"ignoreusage\" parameter is active.", "example": "Combat", "type": "string", "suggestedvalues": [ "Building blocks", "Decoration blocks", "Redstone", "Transportation", "Foodstuffs", "Tools", "Utilities", "Combat", "Brewing", "Materials", "Miscellaneous" ] } }, "description": "Builds a table that lists crafting recipes. Slot/ingredient parameters use the same syntax as Inventory slot.", "paramOrder": [ "A1", "B1", "C1", "A2", "B2", "C2", "A3", "B3", "C3", "1", "2", "3", "4", "5", "6", "7", "8", "9", "Output", "ignoreusage", "type", "shapeless", "fixed", "notfixed", "head", "foot", "showdescription", "description", "showname", "name", "ingredients", "nocat" ], "format": "\n{{_\n|_ = _\n}}\n" }</templatedata> f2bcaede4cb27cdf7bc4d9cf2e84a96065b25269 Category:Has crafting 14 280 306 2025-04-09T23:16:20Z RheingoldRiver 2743 Adding default set of pages wikitext text/x-wiki __HIDDENCAT__ __EXPECTUNUSEDCATEGORY__ 7e6b7092e497df1715b699132e1d441f8d47d5ff Module:Crafting 828 281 307 2025-04-09T23:16:27Z RheingoldRiver 2743 Adding default set of pages Scribunto text/plain -- This module was adapted from: -- [https://minecraft.wiki/wiki/Module:Crafting] on the Minecraft Wiki. -- Credit goes to the original authors. local p = {} local i18n = { moduleArgs = [[Module:ProcessArgs]], moduleRecipe = [[Module:Recipe table]], moduleSlot = [[Module:Inventory slot]], moduleAliases = [[Module:Inventory slot/Aliases]], type = 'Crafting' } p.i18n = i18n local slot = require( i18n.moduleSlot ) local recipeTable = require( i18n.moduleRecipe ).table local aliases = mw.loadData( i18n.moduleAliases ) local cArgVals = { 'A1', 'B1', 'C1', 'A2', 'B2', 'C2', 'A3', 'B3', 'C3' } p.cArgVals = cArgVals function p.table( f ) local args = f if f == mw.getCurrentFrame() then args = require( i18n.moduleArgs ).merge( true ) else f = mw.getCurrentFrame() end -- Automatic shapeless positioning if args[1] then args.shapeless = 1 if args[7] then args.A1 = args[1] args.B1 = args[2] args.C1 = args[3] args.A2 = args[4] args.B2 = args[5] args.C2 = args[6] if args[8] then args.A3 = args[7] args.B3 = args[8] args.C3 = args[9] if args[9] then local identical = true for i = 1, 8 do if args[i] ~= args[i + 1] then identical = false break end end if identical then args.shapeless = nil end end else args.B3 = args[7] end elseif args[2] then args.A2 = args[1] args.B2 = args[2] if args[5] then args.C2 = args[3] args.A3 = args[4] args.B3 = args[5] args.C3 = args[6] elseif args[4] then args.A3 = args[3] args.B3 = args[4] else args.B3 = args[3] end else args.B2 = args[1] args.shapeless = nil end for i = 1, 9 do args[i] = nil end end -- Create recipe table local out = recipeTable( args, { uiFunc = 'craftingTable', type = i18n.type, ingredientArgs = cArgVals, outputArgs = { 'Output' }, } ) local title = mw.title.getCurrentTitle() if args.ignoreusage or args.nocat == '1' or title.namespace ~= 0 or title.isSubpage then return out end return out, "[[Category:Has crafting]]" end return p 7d830f64ea60500df36d33ad370d3ce3c0fdcf75 Module:Crafting/doc 828 282 308 2025-04-09T23:16:27Z RheingoldRiver 2743 Adding default set of pages wikitext text/x-wiki This module was adapted from: [https://minecraft.wiki/wiki/Module:Crafting Module:Crafting] on the Minecraft Wiki. Credit goes to the original authors. This module implements [[:Template:Crafting|<nowiki>{{crafting}}</nowiki>]] Parent arguments are automatically merged with directly passed arguments (the latter overwriting the former). == Dependencies == * [[Module:Inventory slot]] * [[Module:Recipe table]] * [[Module:ProcessArgs]] 8075dec36571286787f5f9af9d1478302620181a Module:Inventory slot 828 283 309 2025-04-09T23:16:28Z RheingoldRiver 2743 Adding default set of pages Scribunto text/plain -- This module was adapted from: -- [https://minecraft.wiki/wiki/Module:Inventory slot] on the Minecraft Wiki. -- Credit goes to the original authors. local p = {} local i18n = { filename = 'Invicon $1', legacyFilename = 'Grid $1.png', modLink = 'Mods/$1/$2', moduleAliases = [[Module:Inventory slot/Aliases]], moduleRandom = [[Module:Random]], -- List of special prefixes which should be handled by -- other modules (such as being moved outside links) prefixes = { any = 'Any', matching = 'Matching', damaged = 'Damaged', unwaxed = 'Unwaxed', }, suffixes = { be = 'BE', lce = 'LCE', }, } p.i18n = i18n local random = require( i18n.moduleRandom ).random local aliases = mw.loadData( i18n.moduleAliases ) local pageName = mw.title.getCurrentTitle().text --[[Splits a given text into fragments separated by semicolons that are not inside square brackets. Written by AttemptToCallNil for the Russian wiki --]] local function splitOnUnenclosedSemicolons(text) local semicolon, lbrace, rbrace = (";[]"):byte(1, 3) local nesting = false local splitStart = 1 local frameIndex = 1 local frames = {} for index = 1, text:len() do local byte = text:byte(index) if byte == semicolon and not nesting then frames[frameIndex] = text:sub(splitStart, index - 1) frameIndex = frameIndex + 1 splitStart = index + 1 elseif byte == lbrace then assert(not nesting, "Excessive square brackets found") nesting = true elseif byte == rbrace then assert(nesting, "Unbalanced square brackets found") nesting = false end end assert(not nesting, "Unbalanced square brackets found") frames[frameIndex] = text:sub(splitStart, text:len()) for index = 1, #frames do frames[index] = (frames[index]:gsub("^%s+", ""):gsub("%s+$", "")) -- faster mw.text.trim end return frames end -- Performs a simple recursive clone of a table's values local function cloneTable( origTable ) local newTable = {} for k, v in pairs( origTable ) do if type( v ) == 'table' then v = cloneTable( v ) end newTable[k] = v end return newTable end --[[Merges a list, or inserts a string or table into a table --]] local function mergeList( parentTable, content ) local i = #parentTable + 1 if content[1] then -- Merge list into table for _, v in ipairs( content ) do parentTable[i] = v i = i + 1 end else -- Add strings or tables to table parentTable[i] = content end end -- Creates the HTML for an item local function makeItem( frame, i, args ) local item = mw.html.create( 'span' ):addClass( 'invslot-item' ) if args.imgclass then item:addClass( args.imgclass ) end if frame.name == '' then return item end local category local title = frame.title or mw.text.trim( args.title or '' ) local mod = frame.mod local name = frame.name or '' local num = frame.num local description = frame.text local img if mod then img = i18n.legacyFilename:gsub( '%$1', name .. ' (' .. mod .. ')' ) elseif name:match( '%.gif$' ) or name:match( '%.png$' ) then img = i18n.filename:gsub( '%$1', name ) -- Remove file extension from name name = name:sub( 0, -5 ) else -- Fall back to an individual image if the sprite is lacking img = i18n.filename:gsub( '%$1', name .. '.png' ) end local link = args.link or '' if link == '' then if mod then link = i18n.modLink:gsub( '%$1', mod ):gsub( '%$2', name ) else link = name:gsub( '^' .. i18n.prefixes.damaged .. ' ', '' ) for _, suffix in pairs( i18n.suffixes ) do link = link:gsub( ' ' .. suffix .. '$', '' ) end end elseif link:lower() == 'none' then link = nil end if link == pageName then link = nil end local formattedTitle local plainTitle if title == '' then plainTitle = name elseif title:lower() ~= 'none' then plainTitle = title:gsub( '\\\\', '&#92;' ):gsub( '\\&', '&#38;' ) local formatPatterns = {'&[0-9a-jl-qs-vyzr]', '&#%x%x%x%x%x%x', '&$%x%x%x'} for _, formatPattern in ipairs( formatPatterns ) do if plainTitle:match( formatPattern ) then formattedTitle = title plainTitle = plainTitle:gsub( formatPattern, '' ) end end if plainTitle == '' then plainTitle = name else plainTitle = plainTitle:gsub( '&#92;', '\\' ):gsub( '&#38;', '&' ) end elseif link then formattedTitle = '' end item:attr{ ['data-minetip-title'] = formattedTitle, ['data-minetip-text'] = description } -- & is re-escaped because mw.html treats attributes -- as plain text, but MediaWiki doesn't local escapedTitle = ( plainTitle or '' ):gsub( '&', '&#38;' ) local altText = img .. ': Inventory sprite for ' .. name .. ' in Minecraft as shown in-game' if link then altText = altText .. ' linking to ' .. link end if formattedTitle or plainTitle or link then altText = altText .. ' with description: ' .. ( formattedTitle or plainTitle or link ) if description then altText = altText .. ' ' .. description:gsub( '/', ' ' ) end altText = altText:gsub( '&[0-9a-jl-qs-wr]', '' ) end item:addClass( 'invslot-item-image' ) :wikitext( '[[File:', img, '|32x32px|link=', link or '', '|alt=', altText, '|', escapedTitle, ']]' ) if num and num > 1 and num < 1000 then if link then item:wikitext( '[[', link, '|' ) end local number = item :tag( 'span' ) :addClass( 'invslot-stacksize' ) :attr{ title = plainTitle } :wikitext( num ) if args.numstyle then number:cssText( args.numstyle ) end if link then item:wikitext( ']]' ) end end item:wikitext( category ) return item end -- Main entry point function p.slot( f ) local args = f.args or f if f == mw.getCurrentFrame() and args[1] == nil then args = f:getParent().args end if not args.parsed then args[1] = mw.text.trim( args[1] or '' ) end local modData = { aliases = args.modaliases or '', default = args.mod } if modData.aliases ~= '' then modData.aliases = mw.loadData( 'Module:' .. modData.aliases ) else modData.aliases = nil end if args.mod == '' then modData.default = nil end local frames if args.parsed then frames = args[1] elseif args[1] ~= '' then local randomise = args.class == 'invslot-large' and 'never' or nil frames = p.parseFrameText( args[1], randomise, false, modData ) end local animated = frames and #frames > 1 local imgClass = args.imgclass local numStyle = args.numstyle local body = mw.html.create( 'span' ):addClass( 'invslot' ):css{ ['vertical-align'] = args.align } if animated then body:addClass( 'animated' ) end if args.class then body:addClass( args.class ) end if args.style then body:cssText( args.style ) end if ( args.default or '' ) ~= '' then body:addClass( 'invslot-default-' .. string.lower( args.default ):gsub( ' ', '-' ) ) end --mw.logObject( frames ) if not frames then return tostring( body ) end local activeFrame = frames.randomise == true and random( #frames ) or 1 for i, frame in ipairs( frames ) do local item -- Table is a list, must contain subframes if frame[1] then item = body:tag( 'span' ):addClass( 'animated-subframe' ) local subActiveFrame = frame.randomise == true and random( #frame ) or 1 for sI, sFrame in ipairs( frame ) do local sItem = makeItem( sFrame, sI, args ) item:node( sItem ) if sI == subActiveFrame then sItem:addClass( 'animated-active' ) end end else item = makeItem( frame, i, args ) body:node( item ) end if i == activeFrame and animated then item:addClass( 'animated-active' ) end end return tostring( body ) end --[[Parses the frame text into a table of frames and subframes, expanding aliases (and optionally retaining a reference), and deciding if the slot can be randomised --]] function p.parseFrameText( framesText, randomise, aliasReference, modData ) local frames = { randomise = randomise } local subframes = {} local subframe local expandedAliases local splitFrames = splitOnUnenclosedSemicolons( framesText ) for i, frameText in ipairs( splitFrames ) do frameText = frameText:gsub( '^%s*{%s*', function() subframe = true return '' end ) if subframe then frameText = frameText:gsub( '%s*}%s*$', function() subframe = 'last' return '' end ) end local frame = p.makeFrame( frameText, modData and modData.default ) local newFrame = frame if aliases or modData.aliases then local id = frame.name if frame.mod then id = frame.mod .. ':' .. id end local alias = modData and modData.aliases and modData.aliases[id] or aliases and aliases[id] if alias then newFrame = p.getAlias( alias, frame ) if aliasReference then local curFrame = #frames + 1 local aliasData = { frame = frame, length = #newFrame } if subframe then if not subframes.aliasReference then subframes.aliasReference = {} end subframes.aliasReference[#subframes + 1] = aliasData else if not expandedAliases then expandedAliases = {} end expandedAliases[curFrame] = aliasData end end end end if subframe then mergeList( subframes, newFrame ) -- Randomise starting frame for "Any *" aliases, as long as the alias is the only subframe if frames.randomise ~= 'never' and subframes.randomise == nil and frame.name:match( '^' .. i18n.prefixes.any .. ' ' ) then subframes.randomise = true else subframes.randomise = false end if frames.randomise ~= 'never' then frames.randomise = false end if subframe == 'last' then -- No point having a subframe containing a single frame, -- or the subframe being the only frame if #subframes == 1 or #splitFrames == i and #frames == 0 then local lastFrame = #frames mergeList( frames, subframes ) -- Inherit the randomise flag if it's the only frame if #splitFrames == 1 then frames.randomise = subframes.randomise end -- Append alias reference data, if present if aliasReference and subframes.aliasReference then if not expandedAliases then expandedAliases = {} end for i, aliasRefData in pairs(subframes.aliasReference) do expandedAliases[lastFrame + i] = aliasRefData end end else table.insert( frames, subframes ) end subframes = {} subframe = nil end else -- Randomise starting frame for "Any *" aliases, as long as the alias is the only frame if frames.randomise ~= 'never' and frame.name:match( '^' .. i18n.prefixes.any .. ' ' ) then frames.randomise = true else frames.randomise = false end mergeList( frames, newFrame ) end end frames.aliasReference = expandedAliases return frames end --[[Returns a new table with the parts of the parent frame added to the alias --]] function p.getAlias( aliasFrames, parentFrame ) -- If alias is just a name, return the parent frame with the new name if type( aliasFrames ) == 'string' then local expandedFrame = mw.clone( parentFrame ) expandedFrame.name = aliasFrames return { expandedFrame } end -- Single frame alias, put in list if aliasFrames.name then aliasFrames = { aliasFrames } end local expandedFrames = {} for i, aliasFrame in ipairs( aliasFrames ) do local expandedFrame if type( aliasFrame ) == 'string' then expandedFrame = { name = aliasFrame } else expandedFrame = cloneTable( aliasFrame ) end expandedFrame.title = parentFrame.title or expandedFrame.title expandedFrame.mod = parentFrame.mod or expandedFrame.mod expandedFrame.num = parentFrame.num or expandedFrame.num expandedFrame.text = parentFrame.text or expandedFrame.text expandedFrames[i] = expandedFrame end return expandedFrames end function p.expandAlias( parentFrame, alias ) return p.getAlias( alias, parentFrame ) end function p.stringifyFrame( frame ) if not frame.name then return '' end return string.format( '[%s]%s:%s,%s[%s]', frame.title or '', frame.mod or 'Minecraft', frame.name, frame.num or '', frame.text or '' ) end function p.stringifyFrames( frames ) for i, frame in ipairs( frames ) do frames[i] = p.stringifyFrame( frame ) end return table.concat( frames, ';' ) end -- Splits up the frame text into its parts function p.makeFrame( frameText, mod ) -- Simple frame with no parts if not frameText:match( '[%[:,]' ) then return { mod = mod, name = mw.text.trim( frameText ), } end frameText = frameText:gsub( '%s*([%[%]:,;])%s*', '%1' ) local frame = {} frame.title = frameText:match( '^%[([^%]]+)%]' ) frame.mod = frameText:match( '([^:%]]+):' ) or mod local vanilla = { v = 1, vanilla = 1, mc = 1, minecraft = 1 } if frame.mod and vanilla[mw.ustring.lower( frame.mod )] or frame.mod == '' then frame.mod = nil end local nameStart = ( frameText:find( ':' ) or frameText:find( '%]' ) or 0 ) + 1 if nameStart - 1 == #frameText then nameStart = 1 end frame.name = frameText:sub( nameStart, ( frameText:find( '[,%[]', nameStart ) or 0 ) - 1 ) frame.num = math.floor( frameText:match( ',(%d+)' ) or 0 ) if frame.num == 0 then frame.num = nil end frame.text = frameText:match( '%[([^%]]+)%]$' ) return frame end function p.getParts( frameText, mod ) return p.makeFrame( frameText, mod ) end return p b5a52f63417622028294e174eabed6ff8333f6e4 Module:Inventory slot/Aliases 828 284 310 2025-04-09T23:16:29Z RheingoldRiver 2743 Adding default set of pages Scribunto text/plain -- This module was adapted from: -- [https://minecraft.wiki/wiki/Module:Inventory slot/Aliases] on the Minecraft Wiki. -- Credit goes to the original authors. local aliases = { -- Common fuel types for furnace -- ['Any fuel'] = { 'Coal', 'Charcoal', { title = 'Log', name = 'Oak Log' }, { title = 'Overworld Planks', name = 'Oak Planks' }, 'Lava Bucket', 'Block of Coal' }, -- All armor -- ['Any leather armor'] = { 'Leather Cap', 'Leather Tunic', 'Leather Pants', 'Leather Boots' }, ['Any golden armor'] = { 'Golden Helmet', 'Golden Chestplate', 'Golden Leggings', 'Golden Boots' }, ['Any chainmail armor'] = { 'Chainmail Helmet', 'Chainmail Chestplate', 'Chainmail Leggings', 'Chainmail Boots' }, ['Any iron armor'] = { 'Iron Helmet', 'Iron Chestplate', 'Iron Leggings', 'Iron Boots' }, ['Any diamond armor'] = { 'Diamond Helmet', 'Diamond Chestplate', 'Diamond Leggings', 'Diamond Boots' }, ['Any netherite armor'] = { 'Netherite Helmet', 'Netherite Chestplate', 'Netherite Leggings', 'Netherite Boots' }, -- Stones -- ['Any Cobblestone or Blackstone'] = { 'Cobblestone', 'Blackstone' }, ['Any stone-tier block'] = { 'Cobblestone', 'Blackstone', 'Cobbled Deepslate' }, -- Miscellaeous collections -- ['Any leaves'] = { 'Oak Leaves', 'Spruce Leaves', 'Birch Leaves', 'Acacia Leaves', 'Jungle Leaves', 'Dark Oak Leaves', 'Mangrove Leaves', 'Cherry Leaves', 'Pale Oak Leaves', 'Azalea Leaves', 'Flowering Azalea Leaves' }; -- Display names -- ['Broken Elytra'] = { title = '&dElytra', name = 'Broken Elytra' }, ['Button'] = { title = 'Button', name = 'Stone Button'}, ['Wooden Button'] = { title = 'Button', name = 'Oak Button'}, ['Arrow Loaded Crossbow'] = { title = 'Crossbow', name = 'Arrow Loaded Crossbow' }, ['Damaged Arrow Loaded Crossbow'] = { title = 'Crossbow', name = 'Damaged Arrow Loaded Crossbow' }, ['Firework Loaded Crossbow'] = { title = 'Crossbow', name = 'Firework Loaded Crossbow' }, ['Damaged Firework Loaded Crossbow'] = { title = 'Crossbow', name = 'Damaged Firework Loaded Crossbow' }, ['Ominous Banner'] = { title = '&6&oOminous Banner', name = 'Ominous Banner', text = '&7Cyan Lozenge/&7Light Gray Base/&7Gray Pale/&7Light Gray Bordure/&7Black Fess/&7Light Gray Per Fess'}, ['Half Filled Bundle'] = { title = 'Bundle', name = 'Half Filled Bundle' }, ['Filled Bundle'] = { title = 'Bundle', name = 'Filled Bundle' }, -- Empty display name -- ['debug_fourj_item'] = { title = '\226\128\140', name = 'debug_fourj_item' }, -- Equipment with custom rarity -- ['Trident'] = { title = '&bTrident', name = 'Trident', text = '/&7 When in Main Hand:/&#160;&29 Attack Damage/&#160;&21.1 Attack Speed'}, ['Damaged Trident'] = { title = '&bTrident', name = 'Damaged Trident', text = '/&7 When in Main Hand:/&#160;&29 Attack Damage/&#160;&21.1 Attack Speed'}, ['Trident BE'] = { title = '&bTrident', name = 'Trident', text = '/&9 +8 Attack Damage'}, ['Mace'] = { title = '&dMace', name = 'Mace', text = '/&7 When in Main Hand:/&#160;&26 Attack Damage/&#160;&20.6 Attack Speed'}, ['Damaged Mace'] = { title = '&dMace', name = 'Damaged Mace', text = '/&7 When in Main Hand:/&#160;&26 Attack Damage/&#160;&20.6 Attack Speed'}, ['Mace BE'] = { title = '&dMace', name = 'Mace', text = '/&9 +5 Attack Damage'}, ["Damaged Elytra"] = { title = "&dElytra", name = "Damaged Elytra" }, ["Damaged Chainmail Boots"] = { title = "&eChainmail Boots", name = "Damaged Chainmail Boots" }, ["Damaged Chainmail Chestplate"] = { title = "&eChainmail Chestplate", name = "Damaged Chainmail Chestplate" }, ["Damaged Chainmail Helmet"] = { title = "&eChainmail Helmet", name = "Damaged Chainmail Helmet" }, ["Damaged Chainmail Leggings"] = { title = "&eChainmail Leggings", name = "Damaged Chainmail Leggings" }, -- Ominous Bottles -- ['Ominous Bottle'] = { title = '&eOminous Bottle', name = 'Ominous Bottle', text = '&9Bad Omen (01:40:00)' }, ['Ominous Bottle II'] = { title = '&eOminous Bottle', name = 'Ominous Bottle', text = '&9Bad Omen II (01:40:00)' }, ['Ominous Bottle III'] = { title = '&eOminous Bottle', name = 'Ominous Bottle', text = '&9Bad Omen III (01:40:00)' }, ['Ominous Bottle IV'] = { title = '&eOminous Bottle', name = 'Ominous Bottle', text = '&9Bad Omen IV (01:40:00)' }, ['Ominous Bottle V'] = { title = '&eOminous Bottle', name = 'Ominous Bottle', text = '&9Bad Omen V (01:40:00)' }, -- Bedrock and Education Edition display names -- ['Buried Treasure Map BE'] = { title = 'Treasure Map', name = 'Buried Treasure Map BE' }, ['Elytra Wings'] = { title = 'Elytra Wings', name = 'Elytra' }, ['Glowing Obsidian'] = { title = 'tile.glowingobsidian.name', name = 'Glowing Obsidian' }, ['Map (no markers)'] = { title = 'Map', name = 'Map', text = 'Display Markers: &cNo' }, ['Locator Map'] = { title = 'Map', name = 'Map', text = 'Display Markers: &aYes' }, ['Shrub BE'] = { title = 'Fern', name = 'Short Grass' }, ['Unknown'] = { title = 'Unknown', name = 'Missing Tile' }, ['info_update'] = { title = 'tile.info_update.name', name = 'Missing Tile' }, ['info_update2'] = { title = 'tile.info_update2.name', name = 'Missing Tile' }, ['reserved6'] = { title = 'tile.reserved6.name', name = 'Missing Tile' }, ['Smooth Purpur'] = { title = 'tile.deprecated_purpur_block_2.name', name = 'Smooth Purpur' }, ['Beacon BE'] = { title = '&bBeacon', name = 'Beacon BE' }, ['Conduit BE'] = { title = '&eConduit', name = 'Conduit BE' }, ['Dragon Egg BE'] = { title = '&dDragon Egg', name = 'Dragon Egg BE' }, ['Skeleton Skull BE'] = { title = '&eSkeleton Skull', name = 'Skeleton Skull BE' }, ['Wither Skeleton Skull BE'] = { title = '&bWither Skeleton Skull', name = 'Wither Skeleton Skull BE' }, ['Zombie Head BE'] = { title = '&eZombie Head', name = 'Zombie Head BE' }, ['Player Head BE'] = { title = '&ePlayer Head', name = 'Player Head BE' }, ['Creeper Head BE'] = { title = '&eCreeper Head', name = 'Creeper Head BE' }, ['Dragon Head BE'] = { title = '&dDragon Head', name = 'Dragon Head BE' }, -- Chemistry -- ['Lead (element)'] = { title = 'Lead', name = 'Lead (element)' }, ['Water (compound)'] = { title = 'Water', name = 'Water (compound)' }, ['Chloride'] = { 'Calcium Chloride', 'Cerium Chloride', 'Mercuric Chloride', 'Potassium Chloride', 'Tungsten Chloride' }, ['Sparkler'] = { 'Orange Sparkler', 'Blue Sparkler', 'Red Sparkler', 'Purple Sparkler', 'Green Sparkler' }, ['Matching Chloride'] = { 'Cerium Chloride', 'Mercuric Chloride', 'Potassium Chloride', 'Tungsten Chloride' }, ['Matching Colored Torch'] = { 'Blue Torch', 'Red Torch', 'Purple Torch', 'Green Torch' }, -- April Fools' Day jokes -- ['New Thing Banner Pattern'] = { title = '&dBanner Pattern', name = 'New Thing Banner Pattern', text = '&7New Thing'}, -- Note: These can't use this module's default color handling because potato peels have no white variant but do include the uncolored variant in recipes ['Any Potato Peels'] = { 'Potato Peels', 'Light Gray Potato Peels', 'Gray Potato Peels', 'Black Potato Peels', 'Brown Potato Peels', 'Red Potato Peels', 'Orange Potato Peels', 'Yellow Potato Peels', 'Lime Potato Peels', 'Green Potato Peels', 'Cyan Potato Peels', 'Light Blue Potato Peels', 'Blue Potato Peels', 'Purple Potato Peels', 'Magenta Potato Peels', 'Pink Potato Peels' }, -- Old textures -- ['Apple Revision 1'] = { title = 'Apple', name = 'Apple Revision 1' }, } -- Tooltip colors -- local yellowTooltips = { 'Bottle o\' Enchanting', 'Chainmail Boots', 'Chainmail Chestplate', 'Chainmail Helmet', 'Chainmail Leggings', 'Conduit', 'Creeper Charge Banner Pattern', 'Creeper Head', 'Disc Fragment 5', 'Dragon\'s Breath', 'Echo Shard', 'Enchanted Book', 'Goat Horn', 'Heart of the Sea', 'Nautilus Shell', 'Ominous Banner', 'Piglin Head', 'Player Head', 'Recovery Compass', 'Skeleton Skull', 'Sniffer Egg', 'Snout Banner Pattern', 'Totem of Undying', 'Zombie Head', } for _, name in ipairs( yellowTooltips ) do aliases[name] = { title = '&e', name = name } end local aquaTooltips = { 'Beacon', 'Enchanted Golden Apple', 'Flow Banner Pattern', 'Guster Banner Pattern', 'Nether Star', 'Skull Charge Banner Pattern', 'Thing Banner Pattern', 'Wither Skeleton Skull', } for _, name in ipairs( aquaTooltips ) do aliases[name] = { title = '&b', name = name } end local magentaTooltips = { 'Barrier', 'Command Block', 'Chain Command Block', 'Debug Stick', 'Dragon Egg', 'Dragon Head', 'Elytra', 'Heavy Core', 'Jigsaw Block', 'Knowledge Book', 'Light', 'Repeating Command Block', 'Structure Block', 'Structure Void', 'Test Block', 'Test Instance Block', } for _, name in ipairs( magentaTooltips ) do aliases[name] = { title = '&d', name = name } end -- Tools and weapons -- local tools = { {'Wooden', 'Sword', 4, 1.6 }, {'Stone', 'Sword', 5, 1.6 }, {'Iron', 'Sword', 6, 1.6 }, {'Golden', 'Sword', 4, 1.6 }, {'Diamond', 'Sword', 7, 1.6 }, {'Netherite', 'Sword', 8, 1.6 }, {'Wooden', 'Pickaxe', 2, 1.2 }, {'Stone', 'Pickaxe', 3, 1.2 }, {'Iron', 'Pickaxe', 4, 1.2 }, {'Golden', 'Pickaxe', 2, 1.2 }, {'Diamond', 'Pickaxe', 5, 1.2 }, {'Netherite', 'Pickaxe', 6, 1.2 }, {'Wooden', 'Axe', 7, 0.8 }, {'Stone', 'Axe', 9, 0.8 }, {'Iron', 'Axe', 9, 0.9 }, {'Golden', 'Axe', 7, 1 }, {'Diamond', 'Axe', 9, 1 }, {'Netherite', 'Axe', 10, 1 }, {'Wooden', 'Shovel', 2.5, 1 }, {'Stone', 'Shovel', 3.5, 1 }, {'Iron', 'Shovel', 4.5, 1 }, {'Golden', 'Shovel', 2.5, 1 }, {'Diamond', 'Shovel', 5.5, 1 }, {'Netherite', 'Shovel', 6.5, 1 }, {'Wooden', 'Hoe', 1, 1 }, {'Stone', 'Hoe', 1, 2 }, {'Iron', 'Hoe', 1, 3 }, {'Golden', 'Hoe', 1, 1 }, {'Diamond', 'Hoe', 1, 4 }, {'Netherite', 'Hoe', 1, 4 } } local materialGroups = {} local toolGroups = {} for _, toolProps in ipairs( tools ) do local aliasName = toolProps[1] .. ' ' .. toolProps[2] local damagedName = 'Damaged ' .. aliasName local text = '/&7When in Main Hand:/&#160;&2' .. toolProps[3] .. ' Attack Damage/&#160;&2' .. toolProps[4] .. ' Attack Speed' aliases[aliasName] = { title = aliasName, name = aliasName, text = text } aliases[damagedName] = { title = aliasName, name = damagedName, text = text } local materialGroup = toolProps[1]:lower() local toolGroup = toolProps[2]:lower() if toolProps[2] ~= 'Sword' then if materialGroups[materialGroup] == nil then materialGroups[materialGroup] = {} end table.insert( materialGroups[materialGroup], aliases[aliasName] ) end if toolGroups[toolGroup] == nil then toolGroups[toolGroup] = {} end table.insert( toolGroups[toolGroup], aliases[aliasName] ) end for materialGroup, items in pairs( materialGroups ) do aliases['Any ' .. materialGroup .. ' tools'] = items end for toolGroup, items in pairs( toolGroups ) do aliases['Any ' .. toolGroup] = items end -- Tools and weapons in Bedrock Edition -- local toolsBE = { {'Wooden', 'Sword', 4 }, {'Stone', 'Sword', 5 }, {'Iron', 'Sword', 6 }, {'Golden', 'Sword', 4 }, {'Diamond', 'Sword', 7 }, {'Netherite', 'Sword', 8 }, {'Wooden', 'Pickaxe', 2 }, {'Stone', 'Pickaxe', 3 }, {'Iron', 'Pickaxe', 4 }, {'Golden', 'Pickaxe', 2 }, {'Diamond', 'Pickaxe', 5 }, {'Netherite', 'Pickaxe', 6 }, {'Wooden', 'Axe', 3 }, {'Stone', 'Axe', 4 }, {'Iron', 'Axe', 5 }, {'Golden', 'Axe', 3 }, {'Diamond', 'Axe', 6 }, {'Netherite', 'Axe', 7 }, {'Wooden', 'Shovel', 1 }, {'Stone', 'Shovel', 2 }, {'Iron', 'Shovel', 3 }, {'Golden', 'Shovel', 1 }, {'Diamond', 'Shovel', 4 }, {'Netherite', 'Shovel', 5 }, {'Wooden', 'Hoe', 2 }, {'Stone', 'Hoe', 3 }, {'Iron', 'Hoe', 4 }, {'Golden', 'Hoe', 2 }, {'Diamond', 'Hoe', 5 }, {'Netherite', 'Hoe', 6 } } for _, toolProps in ipairs( toolsBE ) do local aliasName = toolProps[1] .. ' ' .. toolProps[2] aliases[aliasName .. ' BE'] = { title = aliasName, name = aliasName, text = '/&9+' .. toolProps[3] .. ' Attack Damage'} end -- Armor tooltips -- local head = { {'Leather Cap', 1 }, {'Chainmail Helmet', 2 }, {'Iron Helmet', 2 }, {'Golden Helmet', 2 }, {'Diamond Helmet', 3, 2 }, {'Netherite Helmet', 3, 3, 1 }, {'Turtle Shell', 2 }, } local body = { {'Leather Tunic', 3 }, {'Chainmail Chestplate', 5 }, {'Iron Chestplate', 6 }, {'Golden Chestplate', 5 }, {'Diamond Chestplate', 8, 2 }, {'Netherite Chestplate', 8, 3, 1 }, } local legs = { {'Leather Pants', 2 }, {'Chainmail Leggings', 4 }, {'Iron Leggings', 5 }, {'Golden Leggings', 3 }, {'Diamond Leggings', 6, 2 }, {'Netherite Leggings', 6, 3, 1 }, } local feet = { {'Leather Boots', 1 }, {'Chainmail Boots', 1 }, {'Iron Boots', 2 }, {'Golden Boots', 1 }, {'Diamond Boots', 3, 2 }, {'Netherite Boots', 3, 3, 1 }, } local equipped = { {'Leather Horse Armor', 3 }, {'Iron Horse Armor', 5 }, {'Golden Horse Armor', 7 }, {'Diamond Horse Armor', 11, 2 }, {'Wolf Armor', 11 }, } local bodyParts = { {head, "on Head"}, {body, "on Body"}, {legs, "on Legs"}, {feet, "on Feet"}, {equipped, "equipped"} } local trimMaterial = { {'Quartz', '&h'}, {'Iron', '&i'}, {'Netherite', '&j'}, {'Redstone', '&y'}, {'Copper', '&z'}, {'Gold', '&p'}, {'Emerald', '&q'}, {'Diamond', '&s'}, {'Lapis', '&t'}, {'Amethyst', '&u'}, {'Resin', '&v'}, {'Amber', '&6'}, } for _, bodyPart in ipairs(bodyParts) do local items = bodyPart[1] local bodyPartName = bodyPart[2] for _, toolProps in ipairs(items) do local aliasName = toolProps[1] local damagedName if string.find(aliasName, "Horse Armor") then damagedName = aliasName else damagedName = 'Damaged ' .. aliasName end local text = '/&7When ' .. bodyPartName .. ':/&9+' .. toolProps[2] .. ' Armor/' if toolProps[3] then text = text .. '+' .. toolProps[3] .. ' Armor Toughness/' end if toolProps[4] then text = text .. '+' .. toolProps[4] .. ' Knockback Resistance' end aliases[aliasName] = { title = aliasName, name = aliasName, text = text } aliases[damagedName] = { title = aliasName, name = damagedName, text = text } if bodyPartName ~= "equipped" then for _, materialType in ipairs( trimMaterial ) do local trimName = materialType[1] .. ' Trim ' .. aliasName local trimText = '&7Upgrade:/&#160;' .. materialType[2] .. 'Armor Trim/&#160;' .. materialType[1] .. ' Material/' aliases[trimName] = { title = aliasName, name = trimName, text = trimText .. text } end end end end -- Lists of item variants -- local itemVariants = { ['Small Flower'] = { 'Oxeye Daisy', 'Cornflower', 'Lily of the Valley', 'Wither Rose', 'Red Tulip', 'Orange Tulip', 'White Tulip', 'Pink Tulip', 'Azure Bluet', 'Allium', 'Blue Orchid', 'Poppy', 'Dandelion', 'Torchflower', 'Closed Eyeblossom', 'Open Eyeblossom' }, ['Eyeblossom'] = { 'Closed Eyeblossom', 'Open Eyeblossom' }, ['Mushroom'] = { 'Red Mushroom', 'Brown Mushroom' }, ['Quartz Block'] = { 'Block of Quartz', 'Chiseled Quartz Block', 'Quartz Pillar' }, ['Red Sandstone'] = { 'Red Sandstone', 'Cut Red Sandstone', 'Chiseled Red Sandstone', 'Smooth Red Sandstone' }, ['Sandstone'] = { 'Sandstone', 'Cut Sandstone', 'Chiseled Sandstone', 'Smooth Sandstone' }, ['Stone Bricks'] = { 'Stone Bricks', 'Mossy Stone Bricks', 'Cracked Stone Bricks', 'Chiseled Stone Bricks' }, ['Stone Slab'] = { 'Stone Slab', 'Cobblestone Slab', 'Mossy Cobblestone Slab', 'Smooth Stone Slab', 'Stone Brick Slab', 'Mossy Stone Brick Slab', 'Granite Slab', 'Polished Granite Slab', 'Diorite Slab', 'Polished Diorite Slab', 'Andesite Slab', 'Polished Andesite Slab', 'Cobbled Deepslate Slab', 'Polished Deepslate Slab', 'Deepslate Brick Slab', 'Deepslate Tile Slab', 'Brick Slab', 'Mud Brick Slab', 'Resin Brick Slab', 'Sandstone Slab', 'Smooth Sandstone Slab', 'Cut Sandstone Slab', 'Red Sandstone Slab', 'Smooth Red Sandstone Slab', 'Cut Red Sandstone Slab', 'Prismarine Slab', 'Prismarine Brick Slab', 'Dark Prismarine Slab', 'Nether Brick Slab', 'Red Nether Brick Slab', 'Blackstone Slab', 'Polished Blackstone Slab', 'Polished Blackstone Brick Slab', 'End Stone Brick Slab', 'Purpur Slab', 'Quartz Slab', 'Smooth Quartz Slab', 'Petrified Oak Slab' }, ['Stone Stairs'] = { 'Stone Stairs', 'Cobblestone Stairs', 'Mossy Cobblestone Stairs', 'Stone Brick Stairs', 'Mossy Stone Brick Stairs', 'Granite Stairs', 'Polished Granite Stairs', 'Diorite Stairs', 'Polished Diorite Stairs', 'Andesite Stairs', 'Polished Andesite Stairs', 'Cobbled Deepslate Stairs', 'Polished Deepslate Stairs', 'Deepslate Brick Stairs', 'Deepslate Tile Stairs', 'Brick Stairs', 'Mud Brick Stairs', 'Resin Brick Stairs', 'Sandstone Stairs', 'Smooth Sandstone Stairs', 'Red Sandstone Stairs', 'Smooth Red Sandstone Stairs', 'Prismarine Stairs', 'Prismarine Brick Stairs', 'Dark Prismarine Stairs', 'Nether Brick Stairs', 'Red Nether Brick Stairs', 'Blackstone Stairs', 'Polished Blackstone Stairs', 'Polished Blackstone Brick Stairs', 'End Stone Brick Stairs', 'Purpur Stairs', 'Quartz Stairs', 'Smooth Quartz Stairs' }, ['Wall'] = { 'Cobblestone Wall', 'Mossy Cobblestone Wall', 'Stone Brick Wall', 'Mossy Stone Brick Wall', 'Granite Wall', 'Diorite Wall', 'Andesite Wall', 'Cobbled Deepslate Wall', 'Polished Deepslate Wall', 'Deepslate Brick Wall', 'Deepslate Tile Wall', 'Brick Wall', 'Mud Brick Wall', 'Resin Brick Wall', 'Sandstone Wall', 'Red Sandstone Wall', 'Prismarine Wall', 'Nether Brick Wall', 'Red Nether Brick Wall', 'Blackstone Wall', 'Polished Blackstone Wall', 'Polished Blackstone Brick Wall', 'End Stone Brick Wall' }, ['Purpur Block'] = { 'Purpur Block', 'Purpur Pillar' }, ['Stone'] = { 'Stone', 'Andesite', 'Granite', 'Diorite', 'Polished Andesite', 'Polished Granite', 'Polished Diorite' }, ['Resin Block'] = { 'Block of Resin', 'Resin Bricks', 'Chiseled Resin Bricks' }, ['Tulip'] = { 'Red Tulip', 'Orange Tulip', 'White Tulip', 'Pink Tulip' }, ['Prismarine'] = { 'Prismarine', 'Prismarine Bricks', 'Dark Prismarine' }, ['Ore'] = { 'Coal Ore', 'Iron Ore', 'Gold Ore', 'Lapis Lazuli Ore', 'Redstone Ore', 'Emerald Ore', 'Diamond Ore', 'Nether Quartz Ore', 'Nether Gold Ore', 'Deepslate Coal Ore', 'Deepslate Copper Ore', 'Deepslate Emerald Ore', 'Deepslate Iron Ore', 'Deepslate Gold Ore', 'Deepslate Lapis Lazuli Ore', 'Deepslate Redstone Ore', 'Deepslate Diamond Ore'}, ['Dead Coral Block'] = { 'Dead Tube Coral Block', 'Dead Brain Coral Block', 'Dead Bubble Coral Block', 'Dead Fire Coral Block', 'Dead Horn Coral Block' }, ['Coral Block'] = { 'Tube Coral Block', 'Brain Coral Block', 'Bubble Coral Block', 'Fire Coral Block', 'Horn Coral Block' }, ['Dead Coral'] = { 'Dead Tube Coral', 'Dead Brain Coral', 'Dead Bubble Coral', 'Dead Fire Coral', 'Dead Horn Coral' }, ['Dead Coral Fan'] = { 'Dead Tube Coral Fan', 'Dead Brain Coral Fan', 'Dead Bubble Coral Fan', 'Dead Fire Coral Fan', 'Dead Horn Coral Fan' }, ['Coral'] = { 'Tube Coral', 'Brain Coral', 'Bubble Coral', 'Fire Coral', 'Horn Coral' }, ['Coral Fan'] = { 'Tube Coral Fan', 'Brain Coral Fan', 'Bubble Coral Fan', 'Fire Coral Fan', 'Horn Coral Fan' }, ['Torch'] = { 'Torch', 'Soul Torch' }, ['Lantern'] = { 'Lantern', 'Soul Lantern' }, ['Fungus'] = { 'Crimson Fungus', 'Warped Fungus' }, ['Fungi'] = { 'Crimson Fungus', 'Warped Fungus' }, ['Roots'] = { 'Crimson Roots', 'Warped Roots' }, ['Nylium'] = { 'Crimson Nylium', 'Warped Nylium' }, ['Soul Sand'] = { 'Soul Sand', 'Soul Soil' }, ['Campfire'] = { 'Campfire', 'Soul Campfire' }, ['Blackstone'] = { 'Blackstone', 'Polished Blackstone', 'Chiseled Polished Blackstone', 'Polished Blackstone Bricks', 'Cracked Polished Blackstone Bricks' }, ['Stone Button'] = { 'Stone Button', 'Polished Blackstone Button' }, ['Stone Pressure Plate'] = { 'Stone Pressure Plate', 'Polished Blackstone Pressure Plate' }, } -- Copper -- local copperstuff = { 'Block of Copper', 'Cut Copper', 'Cut Copper Stairs', 'Cut Copper Slab', 'Chiseled Copper', 'Copper Grate', 'Copper Bulb', 'Copper Door', 'Copper Trapdoor', } local coppervariants = { '', 'Exposed ', 'Weathered ', 'Oxidized ' } for _, copper in ipairs( copperstuff ) do itemVariants['Unwaxed ' .. copper] = {} itemVariants['Waxed ' .. copper] = {} for _, coppervariant in ipairs( coppervariants ) do local name = coppervariant .. copper if copper == 'Block of Copper' and coppervariant ~= '' then name = coppervariant .. 'Copper' end table.insert( itemVariants['Unwaxed ' .. copper], name ) table.insert( itemVariants['Waxed ' .. copper], 'Waxed ' .. name ) end itemVariants[copper] = {} for _, copperitem in ipairs( itemVariants['Unwaxed ' .. copper] ) do table.insert( itemVariants[copper], copperitem ) end for _, copperitem in ipairs( itemVariants['Waxed ' .. copper] ) do table.insert( itemVariants[copper], copperitem ) end end for aliasName, aliasItems in pairs( itemVariants ) do aliases['Any ' .. aliasName] = aliasItems aliases['Matching ' .. aliasName] = aliasItems end -- Discs -- local discs = { { '13', 'C418', '', '&e' }, { 'Cat', 'C418', 'cat', '&e' }, { 'Blocks', 'C418', 'blocks', '&e' }, { 'Chirp', 'C418', 'chirp', '&e' }, { 'Far', 'C418', 'far', '&e' }, { 'Mall', 'C418', 'mall', '&e' }, { 'Mellohi', 'C418', 'mellohi', '&e' }, { 'Stal', 'C418', 'stal', '&e' }, { 'Strad', 'C418', 'strad', '&e' }, { 'Ward', 'C418', 'ward', '&e' }, { '11', 'C418', '', '&e' }, { 'Wait', 'C418', 'wait', '&e' }, { 'Otherside', 'Lena Raine', 'otherside', '&b' }, { 'Pigstep', 'Lena Raine', '', '&b' }, { '5', 'Samuel Γ…berg', '', '&e' }, { 'Relic', 'Aaron Cherof', '', '&e' }, { 'Precipice', 'Aaron Cherof', '', '&e' }, { 'Creator', 'Lena Raine', '', '&b' }, { 'Creator (Music Box)', 'Lena Raine', '', '&e' }, } for _, disc in ipairs( discs ) do local rarityColor = disc[4] local name = 'Music Disc ' .. disc[1] local artist = disc[2] local trackname = disc[1] if disc[3] ~= '' then trackname = disc[3] end aliases[name] = { title = rarityColor .. 'Music Disc', name = name, text = '&7' .. artist .. ' - ' .. trackname } end -- Disc Fragments -- local disc_fragments = { { '5', }, } for _, disc_fragment in ipairs( disc_fragments ) do local name = 'Disc Fragment ' .. disc_fragment[1] local trackname = disc_fragment[1] if disc_fragment[2] ~= nil then trackname = disc_fragment[2] end aliases[name] = { title = '&eDisc Fragment', name = name, text = '&7Music Disc - ' .. trackname } end -- Paintings -- local paintings = { { 'Kebab med tre pepperoni', 'Kristoffer Zetterstrand', '1x1' }, { 'de_aztec', 'Kristoffer Zetterstrand', '1x1' }, { 'Albanian', 'Kristoffer Zetterstrand', '1x1' }, { 'Target Successfully Bombed', 'Kristoffer Zetterstrand', '1x1' }, { 'ParadistrΓ€d', 'Kristoffer Zetterstrand', '1x1' }, { 'Wasteland', 'Kristoffer Zetterstrand', '1x1' }, { 'Meditative', 'Sarah Boeving', '1x1' }, { 'Wanderer', 'Kristoffer Zetterstrand', '1x2' }, { 'Graham', 'Kristoffer Zetterstrand', '1x2' }, { 'Prairie Ride', 'Sarah Boeving', '1x2' }, { 'The Pool', 'Kristoffer Zetterstrand', '2x1' }, { 'Bonjour Monsieur Courbet', 'Kristoffer Zetterstrand', '2x1' }, { 'sunset_dense', 'Kristoffer Zetterstrand', '2x1' }, { 'Seaside', 'Kristoffer Zetterstrand', '2x1' }, { 'Creebet', 'Kristoffer Zetterstrand', '2x1' }, { 'Match', 'Kristoffer Zetterstrand', '2x2' }, { 'Bust', 'Kristoffer Zetterstrand', '2x2' }, { 'The Stage Is Set', 'Kristoffer Zetterstrand', '2x2' }, { 'The void', 'Kristoffer Zetterstrand', '2x2' }, { 'Skull and Roses', 'Kristoffer Zetterstrand', '2x2' }, { 'Wither', 'Mojang', '2x2' }, { 'Baroque', 'Sarah Boeving', '2x2' }, { 'Humble', 'Sarah Boeving', '2x2' }, { 'Bouquet', 'Kristoffer Zetterstrand', '3x3' }, { 'Cavebird', 'Kristoffer Zetterstrand', '3x3' }, { 'CotΓ‘n', 'Kristoffer Zetterstrand', '3x3' }, { 'Endboss', 'Kristoffer Zetterstrand', '3x3' }, { 'Fern', 'Kristoffer Zetterstrand', '3x3' }, { 'Owlemons', 'Kristoffer Zetterstrand', '3x3' }, { 'Sunflowers', 'Kristoffer Zetterstrand', '3x3' }, { 'Tides', 'Kristoffer Zetterstrand', '3x3' }, { 'Backyard', 'Kristoffer Zetterstrand', '3x4' }, { 'Pond', 'Kristoffer Zetterstrand', '3x4' }, { 'Fighters', 'Kristoffer Zetterstrand', '4x2' }, { 'Changing', 'Kristoffer Zetterstrand', '4x2' }, { 'Finding', 'Kristoffer Zetterstrand', '4x2' }, { 'Lowmist', 'Kristoffer Zetterstrand', '4x2' }, { 'Passage', 'Kristoffer Zetterstrand', '4x2' }, { 'Mortal Coil', 'Kristoffer Zetterstrand', '4x3' }, { 'Kong', 'Kristoffer Zetterstrand', '4x3' }, { 'Pointer', 'Kristoffer Zetterstrand', '4x4' }, { 'Pigscene', 'Kristoffer Zetterstrand', '4x4' }, { 'Skull On Fire', 'Kristoffer Zetterstrand', '4x4' }, { 'Unpacked', 'Sarah Boeving', '4x4' }, { 'Orb', 'Kristoffer Zetterstrand', '4x4' }, { 'Earth', 'Mojang', '2x2' }, { 'Wind', 'Mojang', '2x2' }, { 'Fire', 'Mojang', '2x2' }, { 'Water', 'Mojang', '2x2' } } for _, painting in ipairs( paintings ) do local name = 'Painting ' .. painting[1] local artist = painting[2] local artwork = painting[1] local size = painting[3] aliases[name] = { title = 'Painting', name = 'Painting', text = '&e' .. artwork .. '/&7' .. artist .. '/' .. '&f' .. size } end -- Damaged items, note it skips tools, weapons, and armor as they are handled above to add the damage tooltip. -- -- Items with rarity (such as Mace and Elytra) are hard-coded in the module's beginning. local damagedItems = { 'Bow', 'Brush', 'Carrot on a Stick', 'Crossbow', 'Fishing Rod', 'Flint and Steel', 'Shears', 'Shield' } for _, item in ipairs( damagedItems ) do local name = 'Damaged ' .. item aliases[name] = { title = item, name = name } end -- Banners and colored items -- local patterns = { 'Base Dexter Canton', 'Base', 'Base Gradient', 'Base Indented', 'Base Sinister Canton', 'Bend', 'Bend Sinister', 'Bordure', 'Bordure Indented', 'Chevron', 'Chief Dexter Canton', 'Chief', 'Chief Indented', 'Chief Sinister Canton', 'Creeper Charge', 'Cross', 'Fess', 'Field Masoned', 'Flow', 'Flower Charge', 'Globe', 'Gradient', 'Guster', 'Inverted Chevron', 'Lozenge', 'Thing', 'Pale', 'Pale Dexter', 'Pale Sinister', 'Paly', 'Per Bend', 'Per Bend Inverted', 'Per Bend Sinister', 'Per Bend Sinister Inverted', 'Per Fess', 'Per Fess Inverted', 'Per Pale', 'Per Pale Inverted', 'Piglin', 'Snout', 'Roundel', 'Saltire', 'Skull Charge' } local colors = { 'White', 'Light Gray', 'Gray', 'Black', 'Brown', 'Red', 'Orange', 'Yellow', 'Lime', 'Green', 'Cyan', 'Light Blue', 'Blue', 'Purple', 'Magenta', 'Pink' } -- Firework Stars -- local fireworkStar = {} for _, color in ipairs( colors ) do local name = color .. ' Firework Star' aliases[name] = { title = 'Firework Star', name = name, text = '&7' .. color } table.insert( fireworkStar, aliases[name] ) for _, pattern in ipairs( patterns ) do name = color .. ' ' .. pattern .. ' Banner' aliases[name] = { title = 'Banner', name = name, text = '&7' .. color .. ' ' .. pattern } end end aliases['Any Firework Star'] = fireworkStar aliases['Matching Firework Star'] = fireworkStar -- Items that use the sixteen colors -- local coloredItems = { withWhite = { 'Balloon', 'Banner', 'Bed', 'Carpet', 'Concrete', 'Concrete Powder', 'Glazed Terracotta', 'Glow Stick', 'Hardened $1 Stained Glass', 'Hardened $1 Stained Glass Pane', 'Shield', 'Shulker Box', 'Stained Glass', 'Stained Glass Pane', 'Wool', '$Dyed Bundle', '$Dyed Candle', '$Dyed Terracotta', }, noWhite = { '$Dyed Wool', '$Dyed Bed', '$Dyed Carpet', '$Colored Dye', } } local coloredBadItems = { ['Light Gray Glow Stick'] = 1, ['Black Glow Stick'] = 1, } for type, items in pairs( coloredItems ) do for _, item in ipairs( items ) do local coloredItemAliases = {} local defaultItemAliases if item:find( '%$[^1]' ) then defaultItemAliases = {} local itemName if type == 'noWhite' then itemName = item:gsub( '%$%w+', 'White' ) else itemName = item:gsub( '%$%w+ ', '' ) end table.insert( defaultItemAliases, itemName ) end for _, color in ipairs( colors ) do local itemName if type ~= 'noWhite' or color ~= 'White' then if item:find( '%$1' ) then itemName = item:gsub( '%$1', color ) elseif item:find( '%$' ) then itemName = item:gsub( '%$%w+', color ) else itemName = color .. ' ' .. item end end if not coloredBadItems[itemName] then if defaultItemAliases then table.insert( defaultItemAliases, itemName ) end table.insert( coloredItemAliases, itemName ) end end if defaultItemAliases then local defaultItem = item:gsub( '%$%w+ ', '' ) aliases['Any ' .. defaultItem] = defaultItemAliases aliases['Matching ' .. defaultItem] = defaultItemAliases end item = item:gsub( '%$1 ', '' ) item = item:gsub( '%$', '' ) aliases['Any ' .. item] = coloredItemAliases aliases['Matching ' .. item] = coloredItemAliases end end -- list of all potions with no effects local noEffects = { 'Water Bottle', 'Awkward Potion', 'Thick Potion', 'Mundane Potion', 'Uncraftable Potion', 'Splash Water Bottle', 'Awkward Splash Potion', 'Thick Splash Potion', 'Mundane Splash Potion', 'Uncraftable Splash Potion', 'Lingering Water Bottle', 'Awkward Lingering Potion', 'Thick Lingering Potion', 'Mundane Lingering Potion', 'Uncraftable Lingering Potion', 'Tipped Arrow', 'Arrow of Splashing', 'Uncraftable Tipped Arrow', } for _, name in ipairs(noEffects) do aliases[name] = { name = name, text = '&7No Effects' } end -- start these lists with the no effect items as names are not normal local potionItems = { ['Potion'] = { aliases['Water Bottle'], aliases['Awkward Potion'], aliases['Thick Potion'], aliases['Mundane Potion'], }, ['Splash Potion'] = { aliases['Splash Water Bottle'], aliases['Awkward Splash Potion'], aliases['Thick Splash Potion'], aliases['Mundane Splash Potion'], }, ['Lingering Potion'] = { aliases['Lingering Water Bottle'], aliases['Awkward Lingering Potion'], aliases['Thick Lingering Potion'], aliases['Mundane Lingering Potion'], }, ['Tipped Arrow'] = { aliases['Arrow of Splashing'], aliases['Tipped Arrow'], aliases['Tipped Arrow'], aliases['Tipped Arrow'], }, } -- Potions -- local effects = { -- durations are in the order normal, extended, enhanced {name = 'Regeneration', effect = '&9Regeneration', enhanced = 'II', durations = { normal = { '0:45', '1:30', '0:22' }, lingering = { '0:11', '0:22', '0:05' }, arrow = { '0:05', '0:11', '0:02' }}}, { name = 'Swiftness', effect = '&9Speed', enhanced = 'II', durations = { normal = { '3:00', '8:00', '1:30' }, lingering = { '0:45', '2:00', '0:22' }, arrow = { '0:22', '1:00', '0:11' }}}, { name = 'Fire Resistance', effect = '&9Fire Resistance', durations = { normal = { '3:00', '8:00' }, lingering = { '0:45', '2:00' }, arrow = { '0:22', '1:00' }}}, { name = 'Poison', effect = '&cPoison', enhanced = 'II', durations = { normal = { '0:45', '1:30', '0:21' }, lingering = { '0:11', '0:22', '0:05' }, arrow = { '0:05', '0:11', '0:02' }}}, { name = 'Healing', effect = '&9Instant Health', enhanced = 'II' }, { name = 'Night Vision', effect = '&9Night Vision', durations = { normal = { '3:00', '8:00' }, lingering = { '0:45', '2:00' }, arrow = { '0:22', '1:00' }}}, { name = 'Weakness', effect = '&cWeakness', durations = { normal = { '1:30', '4:00' }, lingering = { '0:22', '1:00' }, arrow = { '0:11', '0:30' }}}, { name = 'Strength', effect = '&9Strength', enhanced = 'II', durations = { normal = { '3:00', '8:00', '1:30'}, lingering = {'0:45', '2:00', '0:22'}, arrow = { '0:22', '1:00', '0:11' }}}, { name = 'Slowness', effect = '&cSlowness', enhanced = 'IV', durations = { normal = { '1:30', '4:00', '0:20'}, lingering = {'0:22', '1:00', '0:05'}, arrow = { '0:11', '0:30', '0:02' }}}, { name = 'Leaping', effect = '&9Jump Boost', enhanced = 'II', durations = { normal = { '3:00', '8:00', '1:30' }, lingering = {'0:45', '2:00', '0:22'}, arrow = { '0:22', '1:00', '0:11' }}}, { name = 'Harming', effect = '&cInstant Damage', enhanced = 'II' }, { name = 'Water Breathing', effect = '&9Water Breathing', durations = { normal = { '3:00', '8:00' }, lingering = { '0:45', '2:00' }, arrow = { '0:22', '1:00' }}}, { name = 'Invisibility', effect = '&9Invisibility', durations = { normal = { '3:00', '8:00' }, lingering = { '0:45', '2:00' }, arrow = { '0:22', '1:00' }}}, { name = 'Slow Falling', effect = '&9Slow Falling', durations = { normal = { '1:30', '4:00' }, lingering = { '0:22', '1:00' }, arrow = { '0:11', '0:30' }}}, { name = 'Luck', effect = '&9Luck', durations = { normal = { '5:00' }, lingering = { '1:15' }, arrow = { '0:37' }}}, { name = 'Decay', effect = '&cWither', durations = { normal = { '0:40' }, lingering = { '0:10' }, arrow = { '0:05' }}}, { name = 'the Turtle Master', text = '&cSlowness IV ($1)/&9Resistance III ($1)', enhanced = '&cSlowness VI ($1)/&9Resistance IV ($1)', durations = { normal = { '0:20', '0:40', '0:20' }, lingering = { '0:15', '0:45', '0:15' }, arrow = { '0:07', '0:22', '0:07' }}}, { name = 'Oozing', effect = '&cOozing', durations = { normal = { '3:00' }, lingering = { '0:45' }, arrow = { '0:22' }}}, { name = 'Infestation', effect = '&cInfested', durations = { normal = { '3:00' }, lingering = { '0:45' }, arrow = { '0:22' }}}, { name = 'Weaving', effect = '&cWeaving', durations = { normal = { '3:00' }, lingering = { '0:45' }, arrow = { '0:22' }}}, { name = 'Wind Charging', effect = '&cWind Charged', durations = { normal = { '3:00' }, lingering = { '0:45' }, arrow = { '0:22' }}} } local types = { {name = 'Potion', durations = 'normal', text = 'Potion of '}, {name = 'Splash Potion', durations = 'normal', text = 'Splash Potion of '}, {name = 'Lingering Potion', durations = 'lingering', text = 'Lingering Potion of '}, {name = 'Tipped Arrow', durations = 'arrow', text = 'Arrow of '}, } for _, effect in ipairs(effects) do for _, type in ipairs(types) do -- form name, it will be reused local name = type.text .. effect.name local potionName = {} if type.name == 'Tipped Arrow' then potionName = type.text .. effect.name else potionName = type.text .. effect.name end -- if we have durations, add times if effect.durations then local durations = effect.durations[type.durations] -- turtle master is weird, so just do a fancy string replacement if effect.text then aliases[name] = { name = potionName, text = effect.text:gsub( '%$1', durations[1] ) } aliases[name .. ' Extended'] = { name = potionName, text = effect.text:gsub( '%$1', durations[2] ) } aliases[name .. ' Enhanced'] = { name = potionName, text = effect.enhanced:gsub( '%$1', durations[3] ) } else -- we always have normal aliases[name] = { name = potionName, text = string.format( '%s (%s)', effect.effect, durations[1] ) } -- ensure we have extended if durations[2] then aliases[name .. ' Extended'] = { name = potionName, text = string.format( '%s (%s)', effect.effect, durations[2] ) } -- and enhanced, currently there is nothing with a duration that can be extended but not enhanced if effect.enhanced then aliases[name .. ' Enhanced'] = { name = potionName, text = string.format( '%s %s (%s)', effect.effect, effect.enhanced, durations[3] ) } end end end else -- otherwise its just effect, currently every potion with no duration can be enhanced aliases[name] = { name = potionName, text = effect.effect} aliases[name .. ' Enhanced'] = { name = potionName, text = effect.effect .. ' ' .. effect.enhanced } end -- add the base potion to the any list table.insert(potionItems[type.name], aliases[name]) end end -- build the any lists for item, potionAliases in pairs( potionItems ) do aliases['Any ' .. item] = potionAliases aliases['Matching ' .. item] = potionAliases end -- Wood -- local woodTypes = { overworld = { 'Oak', 'Spruce', 'Birch', 'Jungle', 'Acacia', 'Dark Oak', 'Mangrove', 'Cherry', 'Pale Oak', 'Bamboo', }, nether = { 'Crimson', 'Warped', }, both = {}, } local woodTypeWorld = {} for _, world in ipairs({'overworld', 'nether'}) do local woods = woodTypes[world] for _, type in ipairs(woods) do woodTypeWorld[type] = world table.insert(woodTypes.both, type) end end local woodItems = { overworld = { 'Log', 'Wood', 'Stripped $1 Log', 'Stripped $1 Wood', 'Boat', 'Boat with Chest', 'Sapling', }, nether = { 'Stem', 'Hyphae', 'Stripped $1 Stem', 'Stripped $1 Hyphae', }, both = { -- Any/Matching X or Y '${Log,Stem}', '${Wood,Hyphae}', 'Stripped $1 ${Wood,Hyphae}', 'Stripped $1 ${Log,Stem}', -- Dimensional prefixes '$world Planks', '$world $wood Stairs', '$world $wood Slab', '$world $wood Fence', '$world $wood Fence Gate', '$world $wood Door', '$world $wood Trapdoor', '$world $wood Pressure Plate', '$world $wood Button', '$world $wood Sign', '$world $wood Hanging Sign', -- Both dimensions -- Items with non-wood variants include $wood 'Planks', '$wood Stairs', '$wood Slab', '$wood Fence', 'Fence Gate', '$wood Door', '$wood Trapdoor', '$wood Pressure Plate', '$wood Button', 'Sign', 'Hanging Sign', } } local woodItemWorld = {} for world, items in pairs(woodItems) do for _, item in ipairs(items) do -- expand $world (should only happen in "both") if (item:find('%$world')) and world == 'both' then item = item:gsub('%$world ', '') woodItemWorld['Overworld ' .. item] = 'overworld' woodItemWorld['Nether ' .. item] = 'nether' else woodItemWorld[item] = world end end end local woodBadItems = { ['Bamboo Sapling'] = 1, ['Bamboo Wood'] = 1, ['Bamboo Log'] = 1, ['Stripped Bamboo Wood'] = 1, ['Stripped Bamboo Log'] = 1, } local woodNameMapping = { ['Mangrove Sapling'] = 'Mangrove Propagule', ['Bamboo Boat'] = 'Bamboo Raft', ['Bamboo Boat with Chest'] = 'Bamboo Raft with Chest', } for item, world in pairs(woodItemWorld) do local itemName = '' local woodAliases = {} -- real "linkable" name local realItem = item:gsub('^Overworld ', '') realItem = realItem:gsub('^Nether ', '') for _, wood in ipairs(woodTypes[world]) do -- Parse ${,} (world-select) syntax local selector = (woodTypeWorld[wood] == 'overworld') and "%1" or "%2" itemName = realItem:gsub("%${(.-),(.-)}", selector) if itemName:find('%$wood') then itemName = itemName:gsub('%$wood', wood) elseif itemName:find('%$1') then itemName = itemName:gsub( '%$1', wood) else itemName = wood .. ' ' .. itemName end -- special handling if woodNameMapping[itemName] then itemName = woodNameMapping[itemName] end if not woodBadItems[itemName] then table.insert(woodAliases, itemName) end end -- Parse ${,} (world-select) syntax item = item:gsub("%${(.-),(.-)}", "%1 or %2") item = item:gsub('%$wood', 'Wooden') item = item:gsub('%$1 ', '') aliases['Any ' .. item] = woodAliases aliases['Matching ' .. item] = woodAliases end -- Bedrock Edition Items -- local editionItems = { BE = { 'Acacia Fence Gate', 'Andesite Wall', 'Birch Fence Gate', 'Black Bed', 'Black Stained Glass Pane', 'Blackstone Wall', 'Blue Bed', 'Blue Ice', 'Blue Stained Glass Pane', 'Bow', 'Brick Wall', 'Brown Bed', 'Brown Stained Glass Pane', 'Bucket of Pufferfish', 'Bucket of Tropical Fish', 'Cat Spawn Egg', 'Chest', 'Cobbled Deepslate Wall', 'Cobblestone Wall', 'Crimson Fence Gate', 'Crying Obsidian', 'Cyan Bed', 'Cyan Stained Glass Pane', 'Dark Oak Fence Gate', 'Deepslate Brick Wall', 'Deepslate Tile Wall', 'Desert Village Map', 'Diorite Wall', 'Enchanting Table', 'End Gateway', 'End Portal Frame', 'End Portal', 'End Rod', 'End Stone Brick Wall', 'Ender Chest', 'Glass Pane', 'Glowstone', 'Granite Wall', 'Gray Bed', 'Gray Stained Glass Pane', 'Green Bed', 'Green Stained Glass Pane', 'Honey Block', 'Horn Coral Block', 'Iron Bars', 'Jack o\'Lantern', 'Jungle Explorer Map', 'Jungle Fence Gate', 'Jungle Leaves', 'Lava', 'Leather Horse Armor', 'Light', 'Light Blue Bed', 'Light Blue Stained Glass Pane', 'Light Gray Bed', 'Light Gray Stained Glass Pane', 'Lime Bed', 'Lime Stained Glass Pane', 'Lodestone Compass', 'Magenta Bed', 'Magenta Stained Glass Pane', 'Magma Block', 'Map', 'Minecart with Command Block', 'Monster Spawner', 'Mossy Cobblestone Wall', 'Mossy Stone Brick Wall', 'Mud Brick Wall', 'Nether Brick Wall', 'Oak Fence Gate', 'Observer', 'Ocean Explorer Map', 'Orange Bed', 'Orange Stained Glass Pane', 'Panda Spawn Egg', 'Pink Bed', 'Pink Stained Glass Pane', 'Plains Village Map', 'Polished Blackstone Wall', 'Polished Blackstone Brick Wall', 'Polished Deepslate Wall', 'Polished Tuff Wall', 'Prismarine Wall', 'Purple Bed', 'Purple Stained Glass Pane', 'Red Bed', 'Red Nether Brick Wall', 'Red Sandstone Wall', 'Red Stained Glass Pane', 'Resin Brick Wall', 'Sandstone Wall', 'Savanna Village Map', 'Scaffolding', 'Sea Lantern', 'Shroomlight', 'Snowy Village Map', 'Spruce Fence Gate', 'Stone Brick Wall', 'Stonecutter', 'Structure Void', 'Swamp Explorer Map', 'Taiga Village Map', 'Trapped Chest', 'Trial Explorer Map', 'Tuff Wall', 'Tuff Brick Wall', 'Wandering Trader Spawn Egg', 'Warped Fence Gate', 'White Bed', 'White Stained Glass Pane', 'Woodland Explorer Map', 'Yellow Bed', 'Yellow Stained Glass Pane', }, LCE = { 'Shrub' }, SM = { 'Compass', 'Diamond Axe', 'Diamond Hoe', 'Diamond Pickaxe', 'Diamond Shovel', 'Diamond Sword', 'Flint and Steel', 'Potion of Invisibility', 'Potion of Leaping', 'Potion of Swiftness', 'TNT' } } for edition, items in pairs(editionItems) do for _, item in ipairs(items) do local name = item .. ' ' .. edition aliases[name] = { title = item, name = name } end end -- Light blocks -- for level = 0, 15 do aliases["Light " .. level] = { title = "&dLight", name = "Light " .. level } aliases["Light " .. level .. " BE"] = { title = "Light", name = "Light " .. level .. " BE" } end -- Pottery Sherds -- local pottery_sherds = { { 'Angler' }, { 'Arms Up' }, { 'Archer' }, { 'Blade' }, { 'Brewer' }, { 'Burn' }, { 'Danger' }, { 'Explorer' }, { 'Flow' }, { 'Friend' }, { 'Guster' }, { 'Heart' }, { 'Heartbreak' }, { 'Howl' }, { 'Miner' }, { 'Mourner' }, { 'Plenty' }, { 'Prize' }, { 'Scrape' }, { 'Sheaf' }, { 'Shelter' }, { 'Skull' }, { 'Snort' }, } local potterySherdAliases = {} for _, pottery_sherd in ipairs(pottery_sherds) do local name = pottery_sherd[1] .. ' Pottery Sherd' aliases[name] = { title = '&e' .. name , name = name } table.insert(potterySherdAliases, aliases[name]) end table.insert(potterySherdAliases, 'Brick') aliases['Any Pottery Sherd'] = potterySherdAliases -- Smithing Templates -- local smithing_templates = { { 'Netherite Upgrade', 'Diamond Equipment', 'Netherite Ingot', '&e' }, { 'Bolt Armor Trim', 'Armor', 'Ingot & Crystals', '&e' }, { 'Coast Armor Trim', 'Armor', 'Ingot & Crystals', '&e' }, { 'Dune Armor Trim', 'Armor', 'Ingot & Crystals', '&e' }, { 'Eye Armor Trim', 'Armor', 'Ingot & Crystals', '&b' }, { 'Flow Armor Trim', 'Armor', 'Ingot & Crystals', '&e' }, { 'Host Armor Trim', 'Armor', 'Ingot & Crystals', '&e' }, { 'Raiser Armor Trim', 'Armor', 'Ingot & Crystals', '&e' }, { 'Rib Armor Trim', 'Armor', 'Ingot & Crystals', '&e' }, { 'Sentry Armor Trim', 'Armor', 'Ingot & Crystals', '&e' }, { 'Shaper Armor Trim', 'Armor', 'Ingot & Crystals', '&e' }, { 'Silence Armor Trim', 'Armor', 'Ingot & Crystals', '&d' }, { 'Snout Armor Trim', 'Armor', 'Ingot & Crystals', '&e' }, { 'Spire Armor Trim', 'Armor', 'Ingot & Crystals', '&b' }, { 'Tide Armor Trim', 'Armor', 'Ingot & Crystals', '&e' }, { 'Vex Armor Trim', 'Armor', 'Ingot & Crystals', '&b' }, { 'Ward Armor Trim', 'Armor', 'Ingot & Crystals', '&b' }, { 'Wayfinder Armor Trim', 'Armor', 'Ingot & Crystals', '&e' }, { 'Wild Armor Trim', 'Armor', 'Ingot & Crystals', '&e' }, } local smithing_template_array = {} local armor_trims_array = {} for _,smithing_template in pairs(smithing_templates) do local rarityColor = smithing_template[4] local current_alias = { title = rarityColor .. smithing_template[1], name = smithing_template[1] .. ' Smithing Template', text = '&7' .. 'Smithing Template' .. '//Applies to:/&#160;&9' .. smithing_template[2] .. '/&7Ingredients:/&#160;&9' .. smithing_template[3], } aliases[smithing_template[1]] = current_alias aliases[smithing_template[1] .. ' Smithing Template'] = current_alias table.insert(smithing_template_array,current_alias) if string.find(smithing_template[1],' Armor Trim$') then table.insert(armor_trims_array,current_alias) end end aliases['Matching Smithing Template'] = smithing_template_array aliases['Any Smithing Template'] = smithing_template_array aliases['Matching Armor Trim'] = armor_trims_array aliases['Any Armor Trim'] = armor_trims_array aliases['Matching Armor Trim Smithing Template'] = armor_trims_array aliases['Any Armor Trim Smithing Template'] = armor_trims_array return aliases 81dc3104adc8466fe08d286ef399891c5f3be17e Module:Inventory slot/Aliases/Table 828 285 311 2025-04-09T23:16:30Z RheingoldRiver 2743 Adding default set of pages Scribunto text/plain -- This module was adapted from: -- [https://minecraft.wiki/wiki/Module:Inventory slot/Aliases/Table] on the Minecraft Wiki. -- Credit goes to the original authors. local p = {} p.table = function() local slot = require( [[Module:Inventory slot]] ) local aliases = mw.loadData( [[Module:Inventory slot/Aliases]] ) local aliasNames = {} local aI = 1 for name in pairs( aliases ) do -- Skip the banner aliases (except "Any Banner"), as there are so -- many of them it causes the table to be excessively long if name == 'Any Banner' or not name:find( ' Banner$' ) and not name:find( '^Matching ' ) or not aliases[name:gsub( '^Matching', 'Any' )] then aliasNames[aI] = name aI = aI + 1 end end table.sort( aliasNames ) local tableRows = { ' {| class="wikitable collapsible collapsed"', '! Alias !! Output' } local rI = #tableRows + 1 for _, name in ipairs( aliasNames ) do local alias = slot.getAlias( aliases[name], {} ) local cell = {} for i, frame in ipairs( alias ) do cell[i] = slot.slot{ { frame }, parsed = true } end local aliasText = mw.html.create() aliasText:tag( 'code' ):wikitext( name ) if name:find( '^Any ' ) then local altName = name:gsub( '^Any', 'Matching' ) if aliases[altName] then aliasText:tag( 'br' ):done() :tag( 'code' ):wikitext( altName ) end end tableRows[rI] = '|' .. tostring( aliasText ) .. '||' .. table.concat( cell ) rI = rI + 1 end tableRows[rI] = '|}' return table.concat( tableRows, '\n|-\n' ) end return p 6e905397cf42e4216b28e60787a1b68173391245 Module:Inventory slot/Aliases/Table/doc 828 286 312 2025-04-09T23:16:30Z RheingoldRiver 2743 Adding default set of pages wikitext text/x-wiki This module was adapted from: [https://minecraft.wiki/wiki/Module:Inventory_slot/Aliases/Table Module:Inventory slot/Aliases/Table] on the Minecraft Wiki. Credit goes to the original authors. Displays all aliases in a table. a6f6e1d36dc1af04560fb74ae3414e2952a4df7e Module:Inventory slot/Aliases/doc 828 287 313 2025-04-09T23:16:31Z RheingoldRiver 2743 Adding default set of pages wikitext text/x-wiki This module was adapted from: [https://minecraft.wiki/wiki/Module:Inventory_slot/Aliases Module:Inventory slot/Aliases] on the Minecraft Wiki. Credit goes to the original authors. This table defines the aliases used in [[Module:Inventory slot]]. {{#invoke: Inventory slot/Aliases/Table | table }} 497884b013bb25741726aaab788a985f756108d7 Module:Inventory slot/doc 828 288 314 2025-04-09T23:16:32Z RheingoldRiver 2743 Adding default set of pages wikitext text/x-wiki This module was adapted from: [https://minecraft.wiki/wiki/Module:Inventory_slot Module:Inventory slot] on the Minecraft Wiki. Credit goes to the original authors. This module implements <code>{{inventory slot}}</code>. == Dependencies == * [[Module:Inventory slot/Aliases]] 0006db802666d970776e37f5e435c6fe4cce2047 Module:Navbox 828 12 315 20 2025-04-09T23:16:32Z RheingoldRiver 2743 Adding default set of pages Scribunto text/plain -- version 1.2.2 -- config table for RANGER. -- If you want to change the default config, DO NOT change it here, -- please do it via the `onLoadConfig` hook in [[Module:Navbox/Hooks]]. local config = { default_navbox_class = "navigation-not-searchable", -- Base value of the `class` parameter. default_title_class = nil, -- Base value of the `title_class` parameter. default_above_class = nil, -- Base value of the `above_class` parameter. default_below_class = nil, -- Base value of the `below_class` parameter. default_section_class =nil, -- Base value of the `section_class` parameter. default_header_class = nil, -- Base value of the `header_class` parameter. default_group_class = nil, -- Base value of the `group_class` parameter. default_list_class = 'hlist', -- Base value of the `list_class` parameter. default_header_state = nil, -- Base value of the `state` parameter. editlink_hover_message_key = 'Navbox-edit-hover', -- The system message name for hover text of the edit icon. custom_render_handle = nil, -- usually for debugging purposes only. if set, it should be a function accept 2 parameters: `dataTree` and `args`, and return a string as module output. } --------------------------------------------------------------------- -- Argument alias. local CANONICAL_NAMES = { ['titlestyle'] = 'title_style', ['listclass'] = 'list_class', ['groupstyle'] = 'group_style', ['collapsible'] = 'state', ['editlink'] = 'meta', ['editlinks'] = 'meta', ['editicon'] = 'meta', ['edit_link'] = 'meta', ['edit_links'] = 'meta', ['edit_icon'] = 'meta', ['navbar'] = 'meta', ['name'] = 'template', ['evenodd'] = 'striped', ['class'] = 'navbox_class', ['css'] = 'navbox_style', ['style'] = 'navbox_style', ['group'] = '1:group', ['list'] = '1:list', } local DEFAULT_ARGS = { ['meta'] = true, } local STATES = { ['no'] = '', ['off'] = '', ['plain'] = '', ['collapsed'] = 'mw-collapsible mw-collapsed', } local BOOL_FALSE = { ['no'] = true, ['off'] = true, ['false'] = true, } local STRIPED = { ['odd'] = 'striped-odd', ['swap'] = 'striped-odd', ['y'] = 'striped-even', ['yes'] = 'striped-even', ['on'] = 'striped-even', ['even'] = 'striped-even', ['striped'] = 'striped-even', } local NAVBOX_CHILD_INDICATOR = '!!C$H$I$L$D!!' local NAVBOX_CHILD_INDICATOR_LENGTH = string.len( NAVBOX_CHILD_INDICATOR ) local CLASS_PREFIX = 'ranger-' --------------------------------------------------------------------- local p = {} local h = {} -- non-public local hooks = mw.title.new('Module:Navbox/Hooks').exists and require('Module:Navbox/Hooks') or {} --------------------------------------------------------------------- -- For templates: {{#invoke:navbox|main|...}} function p.main(frame) local args = p.mergeArgs(frame) return p.build(args, true) end -- For modules: return require('module:navbox').build(args) -- By default this method will skip the arguments sanitizing phase -- (and onSanitizeArgsStart/onSanitizeArgsEnd hooks). -- Set `doParseArgs` to true to do arguments sanitizing. -- If `customConfig` table is provided, it will be merged into default config table (after onLoadConfig()). -- If `customHooks` table is provided, all default hook handles will be overrided, unprovided hooks will be empty. function p.build(args, doParseArgs, customConfig, customHooks) if customHooks then hooks = customHooks end if doParseArgs then args = h.parseArgs(args) end h.runHook('onLoadConfig', config, args) if customConfig then for k,v in pairs(customConfig) do config[k] = v end end --merge default args for k,v in pairs(DEFAULT_ARGS) do if args[k] == nil then args[k] = DEFAULT_ARGS[k] end end h.runHook('onBuildTreeStart', args) local dataTree = h.buildDataTree(args) h.runHook('onBuildTreeEnd', dataTree, args) if type(config.custom_render_handle) == 'function' then return config.custom_render_handle(dataTree, args) else return h.render(dataTree) end end -- merge args from frame and frame:getParent() -- It may be used when creating custom wrapping navbox module. -- -- For example, Module:PillNavbox -- -- local RANGER = require('Module:Navbox') -- local p = {} -- function p.main(frame) -- return RANGER.build(RANGER.mergeArgs(frame), true, { -- default_navbox_class = 'pill', -- use "pill" style by default. -- }) -- end -- return p -- function p.mergeArgs(frame) local inputArgs = {} for k, v in pairs(frame.args) do v = mw.text.trim(tostring(v)) if v ~= '' then inputArgs[k] = v end end for k, v in pairs(frame:getParent().args) do v = mw.text.trim(v) if v ~= '' then inputArgs[k] = v end end return inputArgs end ------------------------------------------------------------------------ function h.parseArgs(inputArgs) h.runHook('onSanitizeArgsStart', inputArgs) local args = {} for k, v in pairs(inputArgs) do if type(k) == 'string' then -- all named args have already been trimmed local key = h.normalizeKey(k) args[key] = h.normalizeValue(key, v) else args[k] = mw.text.trim(v) -- keep number-index arguments (for {{navbox|child|...}}) end end h.runHook('onSanitizeArgsEnd', args, inputArgs) return args end -- Normalize the name string of arguments. -- the normalized form is (index:)?name, in which: -- index is number index such as 1, 1.3, 1.2.45, -- name is in lowercase underscore-case, such as group, group_style -- e.g: header_state, 1.3:list_style -- the input argument name can be: -- * camel-case: listStyle, ListStyle -- * space separated: list style -- * prefix+index+postfix?, and can be in camel-case or space/hyphen separated or mixed: list 1 style, list1, list1Style, list1_style -- * index.name: 1.3.list -- * index_name: 1.3_list (Space separated are treated as underscore separated, therefore 1.3 list are vaild too) function h.normalizeKey(s) -- camel-case to lowercase underscore-case s = s:gsub('%l%f[%u]', '%0_') -- listStyle to list_style s = (s:gsub(' ', '_')):lower() -- space to underscore s = s:gsub('%l%f[%d]', '%0_') -- group1* to group_1* s = s:gsub('%d%f[%l]', '%0_') -- *1style to *1_style -- number format x_y_z to x.y.z s = s:gsub('(%d)_%f[%d]', '%1%.') -- move index to the beginning: -- group_1.2_style to 1.2:group_style -- group_1 to 1:group s = s:gsub('^([%l_]+)_([%d%.]+)', '%2:%1') -- support index.name and index_name: -- 1.2.group / 1.2_group to 1.2:group s = s:gsub('^([%d%.]+)[%._]%f[%l]', '%1:') -- now the key should be in normalized form, if the origin key is vaild -- standardize *_css to *_style s = s:gsub('_css$', '_style') -- standardize *collapsible to *state s = s:gsub('collapsible$', 'state') -- standardize all aliases to the canonical name return CANONICAL_NAMES[s] or s end function h.normalizeValue(k, v) k = tostring(k) if k:find('_style$') then v = (v .. ';'):gsub(';;', ';') return v elseif k:find('state$') then return STATES[v] elseif k == 'striped' then return STRIPED[v] elseif k == 'meta' then return not BOOL_FALSE[v] elseif v:sub(1, 2) == '{|' or v:match('^[*:;#]') then -- Applying nowrap to lines in a table does not make sense. -- Add newlines to compensate for trim of x in |parm=x in a template. return '\n' .. v ..'\n' end return v end -- parse arguments, convert them to structured data tree function h.buildDataTree(args) -- parse args to a tree local tree = h.buildTree(args) -- build root navbox data local data = h.buildNavboxData(tree.info) -- Recursively build section tree if tree.children then data.sections = h.buildSections(tree.children, { listClass = h.mergeAttrs(args.list_class, config.default_list_class), listStyle = args.list_style, groupClass = h.mergeAttrs(args.group_class, config.default_group_class), groupStyle = args.group_style, sectionClass = h.mergeAttrs(args.section_class, config.default_section_class), sectionStyle = args.section_style, headerClass = h.mergeAttrs(args.header_class, config.default_header_class), headerStyle = args.header_style, headerState = args.header_state or config.default_header_state, }) end if args[1] == 'child' then data.CHILD_MODE = true end return data end function h.buildSections(list, defaults) local sections = {} local section = nil for k, node in h.orderedPairs(list) do local info = node.info or {} --start a new section if needed if info.header or not section then section = { class = h.mergeAttrs(info.section_class, defaults.sectionClass), style = h.mergeAttrs(info.section_style, defaults.sectionStyle), body = {} } -- Section header if needed. -- If the value of a `|header_n=` is two or more consecutive "-" characters (e.g. --, -----), -- it means start a new section without header, and the new section will be not collapsable. if info.header and not string.match(info.header, '^%-%-+$') then section.header = { content = info.header, class = h.mergeAttrs(info.header_class, defaults.headerClass), style = h.mergeAttrs(info.header_style, defaults.headerStyle), } section.state = info.state or defaults.headerState or 'mw-collapsible' end sections[#sections+1] = section end -- above/below for this section if info.above then section.above = { content = info.above, class= h.mergeAttrs(info.above_class, config.default_above_class), style = info.above_style, } end if info.below then section.below = { content = info.below, class= h.mergeAttrs(info.below_class, config.default_below_class), style = info.below_style, } end -- this group+list row if info.group or info.list or node.children then local row = {} section.body[#section.body+1] = row if info.group then row.group = { content = info.group, class = h.mergeAttrs(info.group_class, defaults.groupClass), style = h.mergeAttrs(info.group_style, defaults.groupStyle), } end if info.list then if string.sub(info.list, 1, NAVBOX_CHILD_INDICATOR_LENGTH) == NAVBOX_CHILD_INDICATOR then -- it is from {{navbox|child| ... }} row.sections = mw.text.jsonDecode(string.sub(info.list, NAVBOX_CHILD_INDICATOR_LENGTH+1)) else row.list = { content = info.list, class = h.mergeAttrs(info.list_class, defaults.listClass), style = h.mergeAttrs(info.list_style, defaults.listStyle), } end end -- sub-nodes, will override {{navbox|child| ... }} if node.children then row.sections = h.buildSections(node.children, defaults) end end end -- flatten if needed: -- If a section has only one list with no content and no corresponding group but has sublists, these sublists will be moved to upper level. for _, sect in ipairs(sections) do if #sect.body == 1 then local node = sect.body[1] if not node.group and not node.list and node.sections and #node.sections == 1 and not node.sections[1].header then sect.body = node.sections[1].body end end end return sections end function h.buildNavboxData(info) local data = { state = info.state or 'mw-collapsible', -- here we need a default value for empty input striped = info.striped, class = h.mergeAttrs(info.navbox_class, config.default_navbox_class), style = info.navbox_style, } -- data for titlebar if info.title or info.meta or data.state ~= '' then data.title = { content = info.title, class = h.mergeAttrs(info.title_class, config.default_title_class), style = info.title_style, } if info.meta then data.metaLinks = { link = info.meta_link, -- will be used as [[$link|$text]] url = info.meta_url, -- will be used as [$url $text], only if there is no data.metaLinks.link text = info.meta_text, --hovertext } if not info.meta_link and not info.meta_url then -- default link target local title = mw.title.new(info.template or mw.getCurrentFrame():getParent():getTitle(), 'Template') if not title then error('Invalid title ' .. info.template) end data.metaLinks.link = title.fullText end if not info.meta_text then local msg = mw.message.new(config.editlink_hover_message_key) data.metaLinks.text = msg:exists() and msg:plain() or 'View or edit this template' end end end -- above/below if info.above then data.above = { content = info.above, class= h.mergeAttrs(info.above_class, config.default_above_class), style = info.above_style, } end if info.below then data.below = { content = info.below, class= h.mergeAttrs(info.below_class, config.default_below_class), style = info.below_style, } end return data end -- parse arguments, convert them into a tree based on their index -- each node on tree is { info = { #data for this node# }, children = {#children nodes#} } function h.buildTree(args, defaults) local tree = { info = {} } local check = function(key, value) local index, name = string.match(key, '^([%d%.]+):(.+)$') -- no number index found, for root node if not index then tree.info[key] = value return end -- filter invalid number index if string.match(index, '^%.') or string.match(index, '%.$') or string.match(index, '%.%.') then return end -- find the node that matches the index in the tree local arr = mw.text.split(index, '.', true) local node = tree for _, v in ipairs(arr) do v = tonumber(v) if not node.children then node.children = {} end if not node.children[v] then node.children[v] = { info = {} } end node = node.children[v] end node.info[name] = value end for k,v in pairs(args) do check(k, v) end return tree end function h.render(data) -- handle {{navbox|child|...}} syntax if data.CHILD_MODE then return NAVBOX_CHILD_INDICATOR..mw.text.jsonEncode(data.sections) end ----- normal case ----- local out = mw.html.create() -- build navbox container local navbox = out:tag('div') :attr('role', 'navigation'):attr('aria-label', 'Navbox') :addClass(CLASS_PREFIX..'navbox') :addClass(data.class) :addClass(data.striped) :addClass(data.state) :cssText(data.style) --title bar if data.title then local titlebar = navbox:tag('div'):addClass(CLASS_PREFIX..'title') titlebar:tag('div'):addClass('mw-collapsible-toggle-placeholder') if data.metaLinks then titlebar:node(h.renderMetaLinks(data.metaLinks)) end if data.title then titlebar:addClass(data.title.class):tag('div') :addClass(CLASS_PREFIX..'title-text') :addClass(data.title.class) :cssText(data.title.style) :wikitext(data.title.content) end end --above if data.above then navbox:tag('div') :addClass(CLASS_PREFIX..'above mw-collapsible-content') :addClass(data.above.class) :cssText(data.above.style) :wikitext(data.above.content) :attr('id', (not data.title) and mw.uri.anchorEncode(data.above.content) or nil) -- id for aria-labelledby attribute, if no title end -- sections if data.sections then h.renderSections(data.sections, navbox, 0, true) else -- Insert a blank section for completely empty navbox to ensure it behaves correctly when collapsed. if not data.above and not data.below then navbox:tag('div'):addClass(CLASS_PREFIX..'section mw-collapsible-content') end end --below if data.below then navbox:tag('div') :addClass(CLASS_PREFIX..'below mw-collapsible-content') :addClass(data.below.class) :cssText(data.below.style) :wikitext(data.below.content) end return tostring(out)..'[[Category:Pages with navboxes]]' -- suggest to use HIDDENCAT here; will be used for maintenance & gadget imports end function h.renderSections(data, container, level, even) for i,sect in ipairs(data) do --section box local section = container:tag('div') :addClass(CLASS_PREFIX..'section mw-collapsible-content') :addClass(sect.class) :addClass(sect.state) :cssText(sect.style) -- section header if sect.header then section:tag('div') :addClass(CLASS_PREFIX..'header') :addClass(sect.header.class) :cssText(sect.header.style) :tag('div'):addClass('mw-collapsible-toggle-placeholder'):done() :tag('div'):addClass(CLASS_PREFIX..'header-text'):wikitext(sect.header.content) end -- above: if sect.above then section:tag('div') :addClass(CLASS_PREFIX..'above mw-collapsible-content') :addClass(sect.above.class) :cssText(sect.above.style) :wikitext(sect.above.content) end -- body: groups&lists local box = section:tag('div'):addClass(CLASS_PREFIX..'section-body mw-collapsible-content') even = h.renderBody(sect.body, box, level, (level==0) and true or even) -- reset even status each section -- below: if sect.below then section:tag('div') :addClass(CLASS_PREFIX..'below mw-collapsible-content') :addClass(sect.below.class) :cssText(sect.below.style) :wikitext(sect.below.content) end end return even end function h.renderMetaLinks(info) local box = mw.html.create('span'):addClass(CLASS_PREFIX..'meta') local meta = box:tag('span'):addClass('nv nv-view') if info.link then meta:wikitext('[['..info.link..'|') :tag('span'):wikitext(info.text):attr('title', info.text):done() :wikitext(']]') elseif info.url then meta:wikitext('['..info.url..' ') :tag('span'):wikitext(info.text):attr('title', info.text):done() :wikitext(']') end return box end function h.renderBody(info, box, level, even) local count = 0 for _,v in h.orderedPairs(info) do if v.group or v.list or v.sections then count = count + 1 -- row container local row = box:tag('div'):addClass(CLASS_PREFIX..'row') -- group cell if v.group or (v.sections and level > 0 and not v.list) then local groupCell = row:tag('div') :addClass(CLASS_PREFIX..'group level-'..level) :addClass((level > 0) and CLASS_PREFIX..'subgroup' or nil) local groupContentWrap = groupCell:tag('div'):addClass(CLASS_PREFIX..'wrap') if v.group then groupCell:addClass(v.group.class):cssText(v.group.style) groupContentWrap:wikitext(v.group.content) else groupCell:addClass('empty') row:addClass('empty-group-list') end else row:addClass('empty-group') end -- list cell local listCell = row:tag('div'):addClass(CLASS_PREFIX..'listbox') if not v.list and not v.sections then listCell:addClass('empty') row:addClass('empty-list') end if v.list or (v.group and not v.sections) then --listCell:node(h.renderList(v['list'] or '', k, level, args)) even = not even -- flip even/odd status local cell = listCell:tag('div') :addClass(CLASS_PREFIX..'wrap') :addClass(even and CLASS_PREFIX..'even' or CLASS_PREFIX..'odd') if v.list then cell:addClass(v.list.class):cssText(v.list.style) :tag('div'):addClass(CLASS_PREFIX..'list'):wikitext(v.list.content) end end if v.sections then local sublistBox = listCell:tag('div'):addClass(CLASS_PREFIX..'sublist level-'..level) even = h.renderSections(v.sections, sublistBox, level+1, even) end end end if count > 0 then box:css('--count', count) -- for flex-grow end return even end -- pairs, but sort the keys alphabetically function h.orderedPairs(t, f) local a = {} for n in pairs(t) do table.insert(a, n) end table.sort(a, f) local i = 0 -- iterator variable local iter = function () -- iterator function i = i + 1 if a[i] == nil then return nil else return a[i], t[a[i]] end end return iter end -- For cascading parameters, such as style or class, they are merged in exact order (from general to specific). -- Any parameter starting with multiple hyphens(minus signs) will terminate the cascade. -- An example: -- For group_1.1, its style is affected by parameters |group_1.1_style=... , |subgroup_level_1_style=... , and |subgroup_style=... . -- If we have |group_1.1_style= color:red; |subgroup_level_1_style= font-weight: bold; and |subgroup_style= color: green; , -- the style of group_1.1 will be style="color:green; font-weight: bold; color: red;" ; -- if we have |group_1.1_style= -- color:red; |subgroup_level_1_style= font-weight: bold; and |subgroup_style= color: green; , -- the style of group_1.1 will be style="color: red;" only, and the cascade is no longer performed for |subgroup_level_1_style and |subgroup_style. function h.mergeAttrs(...) local trim = mw.text.trim local s = '' for i=1, select('#', ...) do local v = trim(select(i, ...) or '') local str = string.match(v, '^%-%-+(.*)$') if str then s = trim(str..' '..s) break else s = trim(v..' '..s) end end if s == '' then s = nil end return s end function h.runHook(key, ...) if hooks[key] then hooks[key](...) end end ----------------------------------------------- return p 184ca1a8a54c8fded465a77c9198da564fe29c6c Module:ProcessArgs 828 289 316 2025-04-09T23:16:33Z RheingoldRiver 2743 Adding default set of pages Scribunto text/plain -- This module was adapted from: -- [https://minecraft.wiki/wiki/Module:ProcessArgs] on the Minecraft Wiki. -- Credit goes to the original authors. local p = {} function p.norm( origArgs ) if type( origArgs ) ~= 'table' then origArgs = mw.getCurrentFrame():getParent().args end local args = {} for k, v in pairs( origArgs ) do v = mw.text.trim( tostring( v ) ) if v ~= '' then args[k] = v end end return args end function p.merge( origArgs, parentArgs, norm ) if type( origArgs ) ~= 'table' then norm = origArgs local f = mw.getCurrentFrame() origArgs = f.args parentArgs = f:getParent().args end local args = {} for k, v in pairs( origArgs ) do v = mw.text.trim( tostring( v ) ) if not norm or v ~= '' then args[k] = v end end for k, v in pairs( parentArgs ) do v = mw.text.trim( v ) if not norm or v ~= '' then args[k] = v end end return args end return p c7f5fbc652b9d2bbbb89849eacb92e7f20efc67a Module:ProcessArgs/doc 828 290 317 2025-04-09T23:16:34Z RheingoldRiver 2743 Adding default set of pages wikitext text/x-wiki This module was adapted from [https://minecraft.wiki/wiki/Module:ProcessArgs Module:ProcessArgs] on the Minecraft Wiki. Credit goes to the original authors. This module allows arguments to be merged and normalized. This also has the side-effect of making the arguments a real table instead of an empty table with a metatable to access the args. This allows the <code>#</code> operator to work, as well as allowing new values to be added to the table, without being ignored when iterating. The <code>norm</code> function will normalise the arguments passed to it, trimming whitespace and setting empty arguments to <code>nil</code>. If a table isn't passed to the function, it will automatically get the current frame's parent arguments table. The <code>merge</code> function will merge two tables together, overwriting duplicate values from the first table with the second table's value, as well as doing the same as the <code>norm</code> function if the norm parameter is <code>true</code>. If the first parameter isn't a table, it is used as the value for the norm parameter, and it will automatically get the current frame's directly passed arguments table and merge it with the current frame's parent arguments table. 6cb68b96ad1ef71548dcf1eb7db38a7da65af046 Module:Random 828 291 318 2025-04-09T23:16:34Z RheingoldRiver 2743 Adding default set of pages Scribunto text/plain local p = {} local seeded local randomseed = math.randomseed local random = math.random function p.random( m, n ) if not seeded then p.seed() end return random( n and m or m and 1 or 0, n or m or 1 ) end function p.seed( seed ) randomseed( seed or ( os.time() + os.clock() * 1000000000 ) ) -- First few values of seed is not guaranteed to be random on some platforms random() random() seeded = true end function p.main( frame ) local m = tonumber( frame.args[1] ) local n = tonumber( frame.args[2] ) return tostring( p.random( n and m or m and 1 or 0, n or m or 1 ) ) end return p e8f3e0ebd0e6e30f02ab5b61b88bec958588fe8c Module:Random/doc 828 292 319 2025-04-09T23:16:35Z RheingoldRiver 2743 Adding default set of pages wikitext text/x-wiki This module generates a pseudo-random number. It is used the same as <code>math.random</code>, however it first sets up a seed so that the number is actually random. d6d05c209891a144faf33909fba52417696ea6b8 Module:Recipe table 828 293 320 2025-04-09T23:16:36Z RheingoldRiver 2743 Adding default set of pages Scribunto text/plain -- This module was adapted from: -- [https://minecraft.wiki/wiki/Module:Recipe table] on the Minecraft Wiki. -- Credit goes to the original authors. local m = {} local i18n = { headingDescription = 'Description', headingIngredients = 'Ingredients', headingName = 'Name', headingRecipe = '[[$1]] recipe', moduleSlot = [[Module:Inventory slot]], moduleUi = [[Module:UI]], separator = '&nbsp;+', setSeparator = '&nbsp;or', tableDescription = '$1 recipes', } local slot = require(i18n.moduleSlot) local prefixes = slot.i18n.prefixes -- Lua state tracking instead of DPL local multirow_state = { active = false, showName = nil, showDescription = nil } local function parseRecipeArgs(args, ingredientArgVals, outputArgs) local recipeArgs = {} for _, arg in pairs(ingredientArgVals) do recipeArgs[arg] = args[arg] end for _, arg in pairs(outputArgs) do recipeArgs[arg] = args[arg] end local parsedFrameText = {} local parsedRecipeArgs = {} for arg, frameText in pairs(recipeArgs) do if frameText then local randomise for _, oArg in pairs(outputArgs) do if arg == oArg then randomise = 'never' break end end local frames = not randomise and parsedFrameText[frameText] if not frames then frames = slot.parseFrameText(frameText, randomise, true) parsedFrameText[frameText] = frames end parsedRecipeArgs[arg] = frames end end return parsedRecipeArgs end -- **Re-added makeItemLinks** function m.makeItemLinks(itemSets, removePrefixes) local links = {} for i, itemSet in ipairs(itemSets) do local linkSet = {} for i2, item in ipairs(itemSet) do local name = item.name if removePrefixes then name = name :gsub('^' .. prefixes.any .. ' ', '') :gsub('^' .. prefixes.matching .. ' ', '') :gsub('^%l', string.upper) end local disjunctionA, disjunctionB = name:match("(.-) or (.+)") if disjunctionA then linkSet[i2] = '[[' .. disjunctionA .. ']] or [[' .. disjunctionB .. ']]' else linkSet[i2] = '[[' .. name .. ']]' end end links[i] = table.concat(linkSet, i18n.setSeparator .. '<br>') end return table.concat(links, i18n.separator .. '<br>') end -- **Re-added makeItemSets** function m.makeItemSets(argVals, parsedArgs) local usedItems = {} local function addItem(items, frame, alias) if alias then frame = alias.frame end local uniqName = (frame.mod or '') .. ':' .. frame.name if not usedItems[uniqName] then usedItems[uniqName] = true items[#items + 1] = frame end return alias and alias.length or 1 end local itemSets = {} local i = 1 for _, arg in ipairs(argVals) do local frames = parsedArgs[arg] if frames then local items = {} local frameNum = 1 while frameNum <= #frames do local frame = frames[frameNum] if frame[1] then local subframeNum = 1 while subframeNum <= #frame do local subframe = frame[subframeNum] if subframe.name ~= '' then local alias = frame.aliasReference and frame.aliasReference[subframeNum] subframeNum = subframeNum + addItem(items, subframe, alias) else subframeNum = subframeNum + 1 end end frameNum = frameNum + 1 elseif frame.name ~= '' then local alias = frames.aliasReference and frames.aliasReference[frameNum] frameNum = frameNum + addItem(items, frame, alias) else frameNum = frameNum + 1 end end if #items > 0 then itemSets[i] = items i = i + 1 end end end return itemSets end -- **Re-added makeHeader** function m.makeHeader(recipeType, class, showName, showDescription, multirow) class = class or '' local nameCell = '' if showName then nameCell = i18n.headingName .. '!!' end local descriptionCell = '' if showDescription then descriptionCell = '!!class="unsortable"|' .. i18n.headingDescription end local recipeAttribs = '' if multirow then class = 'sortable ' .. class recipeAttribs = 'class="unsortable"|' end local header = table.concat({ ' {| class="wikitable crafting ' .. class .. '" data-description="' .. i18n.tableDescription:gsub('%$1', recipeType) .. '"', '!' .. nameCell .. i18n.headingIngredients .. '!!' .. recipeAttribs .. i18n.headingRecipe:gsub('%$1', recipeType) .. descriptionCell }, '\n') return header end -- **Re-added makeNameCell** function m.makeNameCell(name, itemSets) if name then return name else return m.makeItemLinks(itemSets, true) end end -- **Re-added makeIngredientsCell** function m.makeIngredientsCell(ingredients, itemSets) return ingredients or m.makeItemLinks(itemSets) end function m.table(args, settings) local f = mw.getCurrentFrame() -- Handle multirow without DPL local multirow = multirow_state.active if args.head then multirow_state.active = true multirow_state.showName = args.showname or '1' multirow_state.showDescription = args.showdescription or '' elseif args.foot then multirow_state.active = false multirow_state.showName = nil multirow_state.showDescription = nil end local showHead = args.head or not multirow local showFoot = args.foot or not multirow local showName = multirow and multirow_state.showName or args.showname local showDescription = multirow and multirow_state.showDescription or args.showdescription local out = {} if showHead then out[1] = m.makeHeader(args.recipeType or settings.type, args.class, showName, showDescription, multirow) end local ingredientArgVals = settings.ingredientArgs local outputArgs = settings.outputArgs local parsedRecipeArgs = args if not args.parsed then parsedRecipeArgs = parseRecipeArgs(args, ingredientArgVals, outputArgs) end local cells = {} local outputItemSets = m.makeItemSets(outputArgs, parsedRecipeArgs) if showName then cells[1] = '!' .. m.makeNameCell(args.name, outputItemSets) end local ingredientsItemSets = m.makeItemSets(ingredientArgVals, parsedRecipeArgs) cells[#cells + 1] = '|' .. m.makeIngredientsCell(args.ingredients, ingredientsItemSets) cells[#cells + 1] = '|style="padding:1px;text-align:center"|' .. require(i18n.moduleUi)[settings.uiFunc](args) if showDescription then cells[#cells + 1] = '|' .. (args.description or '') end out[#out + 1] = table.concat(cells, '\n') out[#out + 1] = showFoot and '|}' or '' return table.concat(out, '\n|-\n') end return m 3883a9e51c8b62f8799f003466cd6aa7faa9f372 Module:Recipe table/doc 828 294 321 2025-04-09T23:16:36Z RheingoldRiver 2743 Adding default set of pages wikitext text/x-wiki This module was adapted from: [https://minecraft.wiki/wiki/Module:Recipe_table Module:Recipe table] on the Minecraft Wiki. Credit goes to the original authors. This module creates the table for [[:Template:Crafting|<nowiki>{{crafting}}</nowiki>]], [[:Template:Brewing|<nowiki>{{brewing}}</nowiki>]], [[:Template:Smelting|<nowiki>{{smelting}}</nowiki>]], and [[:Template:Looming|<nowiki>{{looming}}</nowiki>]]. It can only be invoked within other modules. 062f505c24635416d4bba5de41022920f0b9bbeb Module:UI 828 295 322 2025-04-09T23:16:38Z RheingoldRiver 2743 Adding default set of pages Scribunto text/plain -- This module was adapted from: -- [https://minecraft.wiki/wiki/Module:UI] on the Minecraft Wiki. -- Credit goes to the original authors. local slot = require( [[Module:Inventory slot]] ).slot local addSlot = function( args, item, prefix, class, default ) local none, nostacksize prefix = prefix or '' if #prefix == 0 then none = 'none' nostacksize = ((item == '' or nil) and '') or (args and args[item] and args[item]:gsub( '[,%d]', '' ) or '') end return slot{ nostacksize or args[item], mod = args.Mod, link = none or args[prefix .. 'link'], title = none or args[prefix .. 'title'], class = class, default = default, parsed = args.parsed } end function experience_class(exp_value) local MINMAX = { {-32768, 2}, {3, 6}, {7, 16}, {17, 36}, {37, 72}, {73, 148}, {149, 306}, {307, 616}, {617, 1236}, {1237, 2476}, {2477, 32767} } local EXP_IMGS = { "xp-2", "xp-6", "xp-16", "xp-36", "xp-72", "xp-148", "xp-306", "xp-616", "xp-1236", "xp-2476", "xp-32767", } local n = assert( tonumber(exp_value), "Module:UI: Experience value is not a number (" .. exp_value .. ")" ) local idx = 2; exp = tonumber( exp_value ) if exp <= MINMAX[#MINMAX][2] then for i = 1, #MINMAX do if MINMAX[i][1] < exp and MINMAX[i][2] >= exp then idx = i break end end end return tostring( EXP_IMGS[idx] ) end local p = {} -- Crafting table function p.craftingTable( f ) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args else f = mw.getCurrentFrame() end local body = mw.html.create( 'span' ):addClass( 'mcui mcui-Crafting_Table pixel-image' ) local input = body:tag( 'span' ):addClass( 'mcui-input' ) for num = 1, 3 do local row = input:tag( 'span' ):addClass( 'mcui-row' ) for _, letter in ipairs{ 'A', 'B', 'C' } do row:wikitext( addSlot( args, letter .. num, 'I' ) ) end end local arrow = body:tag( 'span' ):addClass( 'mcui-arrow' ):tag( 'br' ):done() if args.arrow or '' ~= '' then arrow:css( 'background-image', '{{FileUrl|' .. args.arrow .. ' (' .. args.Mod .. ').png}}' ) end body :tag( 'span' ) :addClass( 'mcui-output' ) :wikitext( addSlot( args, 'Output', 'O', 'invslot-large' ) ) local shapeless = args.shapeless or '' local fixed = args.fixed or '' if shapeless ~= '' or fixed ~= '' then local icon = body:tag( 'span' ) :addClass( 'mcui-icons' ) :tag( 'span' ) :tag( 'br' ) :done() if shapeless ~= '' then icon:addClass( 'mcui-shapeless' ) :attr( 'title', 'This recipe is shapeless; the inputs may be placed in any arrangement in the crafting grid.' ) elseif fixed ~= '' then local notFixed = args.notfixed or '' local exceptFixed = '' if notFixed ~= '' then exceptFixed = '; except for ' .. notFixed .. ', which can go anywhere' end icon:addClass( 'mcui-fixed' ) :attr( 'title', 'This recipe is fixed; the input arrangement may not be moved or mirrored in the crafting grid' .. exceptFixed .. '.' ) end end return tostring( mw.html.create( 'div' ):node( body ) ) end -- Furnace function p.furnace( f ) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args else f = mw.getCurrentFrame() end local body = mw.html.create( 'span' ):addClass( 'mcui mcui-Furnace pixel-image' ) local input = body:tag( 'span' ):addClass( 'mcui-input' ) input:wikitext( addSlot( args, 'Input', 'I' ) ) local fuel = input:tag( 'span' ):addClass( 'mcui-fuel' ):tag( 'br' ):done() local fuelImg = args.FuelUsage or '' local burning = args.Input or '' ~= '' and args.Fuel or '' ~= '' if not burning then fuel:addClass( 'mcui-inactive' ) if fuelImg ~= '' then fuelImg = fuelImg .. ' (in-active)' end end if fuelImg ~= '' then fuel:css( 'background-image', '{{FileUrl|' .. fuelImg .. ' (' .. args.Mod .. ').png}}' ) end input:wikitext( addSlot( args, 'Fuel', 'F' ) ) local arrow = body:tag( 'span' ):addClass( 'mcui-arrow' ):tag( 'br' ):done() local arrowImg = args.Progress or '' if not burning or ( args.Output or '' ) == '' then arrow:addClass( 'mcui-inactive' ) if arrowImg ~= '' then arrowImg = arrowImg .. ' (in-active)' end end if arrowImg ~= '' then arrow:css( 'background-image', '{{FileUrl|' .. arrowImg .. ' Progress (' .. args.Mod .. ').png}}' ) end body :tag( 'span' ) :addClass( 'mcui-output' ) :wikitext( addSlot( args, 'Output', 'O', 'invslot-large' ) ) args.Experience = args.Experience or '' if args.Experience ~= '' then -- Converts commas to dots, removes all spaces and splits the arguments with semicolon. local split = mw.text.split(string.gsub(args.Experience, '[ ,]', {[' '] = '', [','] = '.'}), ';', true) local animated = body:tag('span'):attr('title', 'XP reward. If there is a fractional part, it means the recipe has a chance equal to the fractional part of rewarding an additional XP point.') :addClass('animated mcui-experience') local isNotFirst = true for i, v in ipairs(split) do assert(tonumber(v), 'Module:UI: "' .. v .. '" is not a valid number') local xp = tonumber(v) local xpWrapper = animated:tag('span') :addClass(isNotFirst and 'animated-active' or nil) xpWrapper:tag('span') :addClass(experience_class(xp) .. ' mcui-experience-orb') xpWrapper:tag('span') :addClass('mcui-experience-text') :wikitext(('&nbsp;' and xp > 72 or '') .. xp) isNotFirst = false end end return tostring( mw.html.create( 'div' ):node( body ) ) end -- Brewing Stand function p.brewingStand( f ) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args else f = mw.getCurrentFrame() end local body = mw.html.create( 'span' ):addClass( 'mcui mcui-Brewing_Stand pixel-image' ) local input = body:tag( 'span' ):addClass( 'mcui-input' ) input:tag( 'span' ):addClass( 'mcui-bubbling' ):tag( 'br' ) input:wikitext( addSlot( args, 'Input', 'I' ) ) input:tag( 'span' ):addClass( 'mcui-arrow' ):tag( 'br' ) if ( args.Input or '' ) == '' or ( ( args.Output1 or '' ) == '' and ( args.Output2 or '' ) == '' and ( args.Output3 or '' ) == '' ) then input:addClass( 'mcui-inactive' ) end body :tag( 'span' ) :addClass( 'mcui-paths' ) :tag( 'br' ) local output = body:tag( 'span' ):addClass( 'mcui-output' ) for i = 1, 3 do output:wikitext( addSlot( args, 'Output' .. i, 'O' .. i, 'mcui-output' .. i ) ) end return tostring( mw.html.create( 'div' ):node( body ) ) end -- Stonecutter function p.stonecutter( f ) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args else f = mw.getCurrentFrame() end local body = mw.html.create( 'span' ):addClass( 'mcui mcui-Stonecutter pixel-image' ) local input = body:tag( 'span' ):addClass( 'mcui-input' ) input:wikitext( addSlot( args, 'Input', 'I' ) ) local arrow = body:tag( 'span' ):addClass( 'mcui-stonecutterArrow' ) if (args.arrow or '') ~= '' then arrow:css( 'background-image', '{{FileUrl|' .. args.arrow .. ' (' .. args.Mod .. ').png}}' ) end arrow:wikitext( addSlot( args, 'Output', '', 'invslot-plain mcui-stonecutterSprite' ) ) body :tag( 'span' ) :addClass( 'mcui-output' ) :wikitext( addSlot( args, 'Output', 'O', 'invslot-large' ) ) return tostring( mw.html.create( 'div' ):node( body ) ) end -- Loom function p.loom( f ) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args else f = mw.getCurrentFrame() end local body = mw.html.create( 'span' ):addClass( 'mcui mcui-Loom pixel-image' ) local tapestry = body:tag( 'span' ):addClass( 'mcui-tapestry' ) if args.Banner and #args.Banner>0 then tapestry:wikitext( addSlot( args, 'Banner', 'B', 'mcui-inputBanner' ) ) end if args.Dye and #args.Dye>0 then tapestry:wikitext( addSlot( args, 'Dye', 'D', 'mcui-inputDye' ) ) end if args.Pattern and #args.Pattern>0 then tapestry:wikitext( addSlot( args, 'Pattern', 'P', 'mcui-inputPattern' ) ) end tapestry:tag( 'span' ):tag( 'br' ):done() local arrow = body:tag( 'span' ):addClass( 'mcui-loomArrow' ) if args.arrow or '' ~= '' then arrow:css( 'background-image', '{{FileUrl|' .. args.arrow .. ' (' .. args.Mod .. ').png}}' ) end local bannerSprite if args.Sprite and #args.Sprite>0 then local animate = require( [[Module:AnimateSprite]] ).animate bannerSprite = animate{ args.Sprite, name = 'SlotSprite' } else bannerSprite = '<br>' end arrow :tag( 'span' ) :addClass( 'mcui-bannerSprite' ) :wikitext( bannerSprite ) body :tag( 'span' ) :addClass( 'mcui-output' ) :wikitext( addSlot( args, 'Output', 'O', 'invslot-large' ) ) return tostring( mw.html.create( 'div' ):node( body ) ) end -- Grindstone function p.grindstone( f ) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args else f = mw.getCurrentFrame() end local body = mw.html.create( 'span' ):addClass( 'mcui mcui-Grindstone pixel-image' ) local grindstone = body:tag( 'span' ):addClass( 'mcui-grindstone' ) grindstone:wikitext( addSlot( args, 'Input1', 'I1', 'mcui-input1' ) ) grindstone:wikitext( addSlot( args, 'Input2', 'I2', 'mcui-input2' ) ) local arrow = body:tag( 'span' ):addClass( 'mcui-arrow' ) if args.arrow or '' ~= '' then arrow:css( 'background-image', '{{FileUrl|' .. args.arrow .. ' (' .. args.Mod .. ').png}}' ) end body :tag( 'span' ) :addClass( 'mcui-output' ) :wikitext( addSlot( args, 'Output', 'O', 'invslot-large' ) ) return tostring( mw.html.create( 'div' ):node( body ) ) end -- Smithing Table function p.smithing (f) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args else f = mw.getCurrentFrame() end local body = mw.html.create( 'span' ):addClass( 'mcui mcui-Smithing_Table pixel-image' ) local smithingTable = body:tag( 'span' ):addClass( 'mcui-smithingTable' ) smithingTable:wikitext( addSlot( args, 'Input1', 'I1', 'mcui-input1' ) ) smithingTable:wikitext( addSlot( args, 'Input2', 'I2', 'mcui-input2' ) ) smithingTable:wikitext( addSlot( args, 'Input3', 'I3', 'mcui-input3' ) ) local arrow = body:tag( 'span' ):addClass( 'mcui-arrow' ) arrow:cssText([[display: inline-block; width: 44px; height: 30px; margin: 3px 18px; vertical-align: top;]]) if args.arrow or '' ~= '' then arrow:css( 'background-image', '{{FileUrl|' .. args.arrow .. ' (' .. args.Mod .. ').png}}' ) end if args.crossed then arrow:addClass('mcui-inactive') end body :tag( 'span' ) :addClass( 'mcui-output' ) :wikitext( addSlot( args, 'Output', 'O', 'invslot' ) ) return tostring( mw.html.create( 'div' ):node( body ) ) end -- Anvil function p.anvil (f) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args else f = mw.getCurrentFrame() end local body = mw.html.create( 'span' ):addClass( 'mcui mcui-Anvil pixel-image' ) local hammer = body:tag( 'span' ):addClass('mcui-hammer') hammer:cssText([[display: block; width: 60px; height: 60px;]]) local title = body:tag( 'span' ):addClass('mcui-Anvil-inputbox mcui-input') local itemName if args.Input1 and #args.Input1>0 then local animate = require( [[Module:AnimateText]] ).animate itemName = animate{ args.Input1:gsub('Damaged ', ''):gsub( ';' , ',,' ) } else title:addClass( 'mcui-inactive' ) itemName = '<br>' end title:wikitext( ( itemName:gsub( 'class="animated"', 'class="mcui-Anvil-inputtext animated"' ) ) ) local anvilA = body:tag( 'span' ):addClass( 'mcui-anvil' ):css('margin-left', '18px') anvilA:wikitext( addSlot( args, 'Input1', 'I1', 'mcui-input1' ) ) local plus = body:tag( 'span' ):addClass( 'mcui-plus' ) plus:cssText([[display: inline-block; width: 26px; height: 26px; margin: 6px 18px; vertical-align: top;]]) local anvilB = body:tag( 'span' ):addClass( 'mcui-anvil' ) anvilB:wikitext( addSlot( args, 'Input2', 'I2', 'mcui-input2' ) ) local arrow = body:tag( 'span' ):addClass( 'mcui-arrow' ) arrow:cssText([[display: inline-block; width: 44px; height: 30px; margin: 4px 18px; vertical-align: top;]]) if args.arrow or '' ~= '' then arrow:css( 'background-image', '{{FileUrl|' .. args.arrow .. ' (' .. args.Mod .. ').png}}' ) end if args.crossed then arrow:addClass('mcui-inactive') end body :tag( 'span' ) :addClass( 'mcui-output' ) :css( 'margin-right', '18px' ) :wikitext( addSlot( args, 'Output', 'O', 'invslot' ) ) if args.cost then local cost = body:tag('span'):addClass('mcui-Anvil-cost') if args.expensive then cost:addClass('mcui-Anvil-cost-expensive') else cost:addClass('mcui-Anvil-cost-normal') end if args.cost == 'expensive' then cost:wikitext('Too expensive') else cost:wikitext('Enchantment Cost: ' .. args.cost) end end local wrapper = mw.html.create( 'div' ) wrapper:wikitext( require( [[Module:TSLoader]] ).call( "Anvil/styles.css" ) ) return tostring( wrapper:node( body ) ) end function p.legacySmithing (f) local args = f if f == mw.getCurrentFrame() then args = f:getParent().args else f = mw.getCurrentFrame() end local body = mw.html.create( 'span' ):addClass( 'mcui mcui-Smithing_Table pixel-image' ) local smithingA = body:tag( 'span' ):addClass( 'mcui-smithingTable' ) smithingA:wikitext( addSlot( args, 'Input1', 'I1', 'mcui-input1' ) ) local plus = body:tag( 'span' ):addClass( 'mcui-plus' ) plus:cssText([[display: inline-block; width: 26px; height: 26px; margin: 6px 18px; vertical-align: top;]]) local smithingB = body:tag( 'span' ):addClass( 'mcui-smithingTable' ) smithingB:wikitext( addSlot( args, 'Input2', 'I2', 'mcui-input2 invslot-default-smithing' ) ) local arrow = body:tag( 'span' ):addClass( 'mcui-arrow' ) arrow:cssText([[display: inline-block; width: 44px; height: 30px; margin: 4px 18px; vertical-align: top;]]) if args.arrow or '' ~= '' then arrow:css( 'background-image', '{{FileUrl|' .. args.arrow .. ' (' .. args.Mod .. ').png}}' ) end if args.crossed then arrow:addClass('mcui-inactive') end body :tag( 'span' ) :addClass( 'mcui-output' ) :wikitext( addSlot( args, 'Output', 'O', 'invslot' ) ) return tostring( mw.html.create( 'div' ):node( body ) ) end return p 1f0ed3df204f57567fea77e1287fad8d94089d2e Module:UI/doc 828 296 323 2025-04-09T23:16:39Z RheingoldRiver 2743 Adding default set of pages wikitext text/x-wiki This module was adapted from: [https://minecraft.wiki/wiki/Module:UI Module:UI] on the Minecraft Wiki. Credit goes to the original authors. This module implements common UI templates, to avoid overhead from excessive #invoke calls. a55f4df8f0d77c6756a4ac08c7b562a55db224eb Tensura: Eldritch Wiki/about 0 6 324 11 2025-04-09T23:24:36Z UnluckyWarl0ck 588787 wikitext text/x-wiki {{Main page box/start | title = About Tensura: Eldritch }} Tensura: Eldritch is an add-on for the base mod, Tensura: Reincarnation. It adds several new skills like Lore Hunter, Dice Dice Dice and Pure Heart. Keep in mind that this Wiki is only meant for the new additions in this add-on. For the base mod's Wiki, [https://tensurareincarnated.wiki.gg click here]. <div style="text-align:right">[[Tensura: Eldritch|Read more...]]</div> {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> 49aebb4cea494555553c0bd72bbb37dd28391762 Tensura: Eldritch Wiki/external 0 8 325 15 2025-04-10T00:27:36Z UnluckyWarl0ck 588787 wikitext text/x-wiki {{Main page box/start | title = External links }} <div class="mp-links columns-2"> * {{MP link|Discord|link=https://discord.gg/nBhdKPpNmA|image=Discord.svg|size=64x64px}} </div> {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> 3421bf5b35be8cf706928f5b89e19ebe69bfa40c Tensura: Eldritch Wiki/pages 0 5 326 9 2025-04-10T07:59:52Z UnluckyWarl0ck 588787 wikitext text/x-wiki {{Main page box/start | title = Useful wiki pages | class = centered-content }} <div class="mp-links columns-2"> </div> {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> 6be1094ebedf6c45afaad772a58b852d977e95ac MediaWiki:Sidebar 8 297 327 2025-04-10T08:02:42Z UnluckyWarl0ck 588787 Created page with "* navigation ** mainpage|mainpage-description * sidebar-customizing-wiki ** MediaWiki:Sidebar|sidebar-edit-sidebar ** MediaWiki:Common.css|sidebar-edit-common-css ** MediaWiki:Vector.css|sidebar-edit-vector-css ** MediaWiki:Common.js|sidebar-edit-common-js ** MediaWiki:Vector.js|sidebar-edit-vector-js ** Special:AllPages|sidebar-all-pages ** Special:SpecialPages|sidebar-special-pages * wiki.gg ** support:|sidebar-support-wiki ** Wikigg-ticket-link|sidebar-submit-ticket *..." wikitext text/x-wiki * navigation ** mainpage|mainpage-description * sidebar-customizing-wiki ** MediaWiki:Sidebar|sidebar-edit-sidebar ** MediaWiki:Common.css|sidebar-edit-common-css ** MediaWiki:Vector.css|sidebar-edit-vector-css ** MediaWiki:Common.js|sidebar-edit-common-js ** MediaWiki:Vector.js|sidebar-edit-vector-js ** Special:AllPages|sidebar-all-pages ** Special:SpecialPages|sidebar-special-pages * wiki.gg ** support:|sidebar-support-wiki ** Wikigg-ticket-link|sidebar-submit-ticket ** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar * SEARCH * TOOLBOX * LANGUAGES 96da37b384cc869fe3bd0cd93ae9af3402837bd9 328 327 2025-04-10T08:03:34Z UnluckyWarl0ck 588787 wikitext text/x-wiki * navigation ** mainpage|mainpage-description ** Getting_Started|Getting Started ** Abilities|Abilities ** Races|Races ** Items|Items ** Mechanics|Mechanics ** Config|Config ** Commands|Commands * sidebar-customizing-wiki ** MediaWiki:Sidebar|sidebar-edit-sidebar ** MediaWiki:Common.css|sidebar-edit-common-css ** MediaWiki:Vector.css|sidebar-edit-vector-css ** MediaWiki:Common.js|sidebar-edit-common-js ** MediaWiki:Vector.js|sidebar-edit-vector-js ** Special:AllPages|sidebar-all-pages ** Special:SpecialPages|sidebar-special-pages * wiki.gg ** support:|sidebar-support-wiki ** Wikigg-ticket-link|sidebar-submit-ticket ** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar * SEARCH * TOOLBOX * LANGUAGES 6179f73d2853874ba4e9ba0b3a8c2ada03cc3019 Abilities 0 298 329 2025-04-10T08:04:22Z UnluckyWarl0ck 588787 Created page with " <div class="navi-grid"> <div class="navi-item"> [[File:Skillicon.png|128px|link=Abilities/Skills|alt=Skills]] <div class="navi-name">[[Abilities/Skills|Skills]]</div> </div> <div class="navi-item"> [[File:Magicicon.png|128px|link=Abilities/Magics|alt=Magics]] <div class="navi-name">[[Abilities/Magics|Magics]]</div> </div> </div>" wikitext text/x-wiki <div class="navi-grid"> <div class="navi-item"> [[File:Skillicon.png|128px|link=Abilities/Skills|alt=Skills]] <div class="navi-name">[[Abilities/Skills|Skills]]</div> </div> <div class="navi-item"> [[File:Magicicon.png|128px|link=Abilities/Magics|alt=Magics]] <div class="navi-name">[[Abilities/Magics|Magics]]</div> </div> </div> 11eecc4a4b4dddf30487cc33655f9e6d54b59df0 331 329 2025-04-10T08:07:56Z UnluckyWarl0ck 588787 wikitext text/x-wiki <div class="navi-grid"> <div class="navi-item"> [[File:Skillicon.png|128px|link=Abilities/Skills|alt=Skills]] <div class="navi-name">[[Abilities/Skills|Skills]]</div> </div> <div class="navi-item">[[File:Magicicon.webp|thumb]] <div class="navi-name">[[Abilities/Magics|Magics]]</div> </div> </div> e603b010f2f274b1829e118997e195869598c18f 332 331 2025-04-10T08:08:34Z UnluckyWarl0ck 588787 wikitext text/x-wiki <div class="navi-grid"> <div class="navi-item"> [[File:Skillicon.png|128px|link=Abilities/Skills|alt=Skills]] <div class="navi-name">[[Abilities/Skills|Skills]]</div> </div> <div class="navi-item"><div class="navi-name">[[Abilities/Magics|Magics]]</div>[[File:Magicicon.webp|thumb]] </div> </div> 8c59a8f5b74de498053fdb78beec2ec6d59660c8 333 332 2025-04-10T08:11:04Z UnluckyWarl0ck 588787 wikitext text/x-wiki <div class="navi-grid"> <div class="navi-item"> [[File:Skillicon.png|128px|link=Abilities/Skills|alt=Skills]] <div class="navi-name">[[Abilities/Skills|Skills]]</div> </div> <div class="navi-item"> [[File:Magicicon.webp|128px|link=Abilites/Magics|Alt=Magics]] <div class="navi-name">[[Abilities/Magics|Magics]]</div> </div> </div> dfd41f9e3a52a0aecae973d64dc9d89b980d4e7e 335 333 2025-04-10T08:12:06Z UnluckyWarl0ck 588787 wikitext text/x-wiki <div class="navi-grid"> <div class="navi-item"> [[File:128px-Skillicon.webp]].png|128px|link=Abilities/Skills|alt=Skills]] <div class="navi-name">[[Abilities/Skills|Skills]]</div> </div> <div class="navi-item"> [[File:Magicicon.webp|128px|link=Abilites/Magics|Alt=Magics]] <div class="navi-name">[[Abilities/Magics|Magics]]</div> </div> </div> 9d245dda6fac9b41980e2d9fc0c12168e588e45a 336 335 2025-04-10T08:12:26Z UnluckyWarl0ck 588787 wikitext text/x-wiki <div class="navi-grid"> <div class="navi-item"> [[File:128px-Skillicon.webp|128px|link=Abilities/Skills|alt=Skills]] <div class="navi-name">[[Abilities/Skills|Skills]]</div> </div> <div class="navi-item"> [[File:Magicicon.webp|128px|link=Abilites/Magics|Alt=Magics]] <div class="navi-name">[[Abilities/Magics|Magics]]</div> </div> </div> a1753217654b9017b030a3f408d75bd68421f4dc 337 336 2025-04-10T08:13:23Z UnluckyWarl0ck 588787 wikitext text/x-wiki <div class="navi-grid"> <div class="navi-item"> [[File:128px-Skillicon.webp|128px|link=Abilities/Skills|alt=Skills]] <div class="navi-name">[[Abilities/Skills|Skills]]</div> </div> <div class="navi-item"> [[File:Magicicon.webp|128px|link=Abilities/Magics|alt=Magics]] <div class="navi-name">[[Abilities/Magics|Magics]]</div> </div> </div> dd20cdf327a4253bee45d7e578f4a070cce0e363 338 337 2025-04-10T08:15:59Z UnluckyWarl0ck 588787 wikitext text/x-wiki <div class="navi-grid" style="display: flex; justify-content: center; flex-wrap: wrap; max-width: 300px; margin: 0 auto;"> <div class="navi-item" style="text-align: center; margin: 10px;"> [[File:128px-Skillicon.webp|128px|link=Abilities/Skills|alt=Skills]] <div class="navi-name">[[Abilities/Skills|Skills]]</div> </div> <div class="navi-item" style="text-align: center; margin: 10px;"> [[File:Magicicon.webp|128px|link=Abilities/Magics|alt=Magics]] <div class="navi-name">[[Abilities/Magics|Magics]]</div> </div> </div> eb892a35061df94c790ccddde82ff2877b1fd20a 340 338 2025-04-10T17:14:38Z Zykestheone 553622 wikitext text/x-wiki <div class="navi-grid"> <div class="navi-item"> [[File:128px-Skillicon.webp|128px|link=Abilities/Skills|alt=Skills]] <div class="navi-name">[[Abilities/Skills|Skills]]</div> </div> <div class="navi-item"> [[File:Magicicon.webp|128px|link=Abilities/Magics|alt=Magics]] <div class="navi-name">[[Abilities/Magics|Magics]]</div> </div> </div> 91a5caa571a08c5fd3e1e7e9557ab923e9bdc22b File:Magicicon.webp 6 299 330 2025-04-10T08:06:50Z UnluckyWarl0ck 588787 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:128px-Skillicon.webp 6 300 334 2025-04-10T08:11:32Z UnluckyWarl0ck 588787 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 MediaWiki:Common.css 8 226 339 250 2025-04-10T17:13:25Z Zykestheone 553622 css text/css /* CSS placed here will be applied to all skins */ :root{ /* start font settings */ --wiki-body-font-family: sans-serif; --wiki-heading-font-family: 'Linux Libertine','Georgia','Times',serif; --wiki-sidebar-heading-font-family: sans-serif; /* end font settings */ /* start design variables */ --wiki-sidebar-border-radius:0px; /* these two variables must have units specified even if 0, ignore the warning */ --wiki-sidebar-portal-spacing:0px; --wiki-content-border-width:1px; --wiki-sidebar-border-width:1px; /* end design variables */ } /* the rest of the variables will modify some type of color, either text color, background color, border color, etc. */ :root, /* Begin light styles, delete from here to "end light styles" if you don't want your wiki to support any light themes (remove from [[Mediawiki:Theme-definitions]] too, or ask wiki.gg staff for help doing this) */ /* FYI: .view- will affect any theme marked |kind=light, */ /* individual themes are prefixed with .theme- instead */ .view-light { /********************** * Probably edit these * [ LIGHT VIEW ] ***********************/ --wiki-body-background-color: #F6F6F6; --wiki-body-background-image: url(/images/8/80/Site-background.jpg); /* please find the file path by viewing the image directly (click the image from the File: page) */ --wiki-content-background-color: #ffffff; --wiki-content-background-opacity: 100%; --wiki-content-border-color: #a7d7f9; --wiki-content-link-color: #0645ad; /* if changing this, remember to change --wiki-icon-to-link-filter as well!!! */ /* [ LIGHT VIEW ] */ --wiki-accent-color: #3366cc; --wiki-accent-label-color: #ffffff; --wiki-accent-link-color: #D5FB51; --wiki-icon-to-link-filter: invert(20%) sepia(93%) saturate(2141%) hue-rotate(210deg) brightness(83%) contrast(103%); /* put your --wiki-content-link-color into https://mrpie5.gitlab.io/css-filter-generator/ */ /**/ /******************* * Maybe edit these * [ LIGHT VIEW ] ********************/ --wiki-body-background-position: top center; --wiki-body-background-size:cover; --wiki-body-background-repeat: no-repeat; --wiki-body-background-attachment: fixed; --wiki-content-background-color--secondary: color-mix(in srgb, var(--wiki-content-background-color) 96%, var(--wiki-content-dynamic-color)); --wiki-content-text-color: #111111; --wiki-content-link-color--visited: var(--wiki-content-link-color); --wiki-content-link-color--hover: var(--wiki-content-link-color); --wiki-content-redlink-color: #ba0000; --wiki-content-heading-color: var(--wiki-content-text-color); --wiki-accent-color--hover: color-mix(in srgb, var(--wiki-accent-color) 95%, var(--wiki-accent-label-color)); /* [ LIGHT VIEW ] */ --wiki-sidebar-background-color: var(--wiki-content-background-color); --wiki-sidebar-background-opacity: var(--wiki-content-background-opacity); --wiki-sidebar-border-color: var(--wiki-content-border-color); --wiki-sidebar-link-color: var(--wiki-content-link-color); --wiki-sidebar-link-color--hover: var(--wiki-content-link-color--hover); --wiki-sidebar-heading-color: var(--wiki-content-heading-color); /* [ LIGHT VIEW ] */ --wiki-navigation-background-color: var(--wiki-content-background-color--secondary); --wiki-navigation-background-color--secondary: var(--wiki-content-background-color); --wiki-navigation-border-color: var(--wiki-content-border-color); --wiki-navigation-text-color: var(--wiki-content-link-color); --wiki-navigation-text-color--hover: var(--wiki-content-link-color--hover); --wiki-navigation-selected-background-color: var(--wiki-content-background-color); --wiki-navigation-selected-border-color: var(--wiki-navigation-border-color); --wiki-navigation-selected-text-color: var(--wiki-content-text-color); /* [ LIGHT VIEW ] */ --wiki-neutral-color: var(--wiki-content-text-mix-color); --wiki-alert-color: #bf0017; --wiki-warning-color: #b05f30; --wiki-success-color: #0c742f; /**/ /*********************************** * Likely do not need to edit these * [ LIGHT VIEW ] ************************************/ --wiki-body-dynamic-color: #000000; --wiki-body-dynamic-color--inverted: #ffffff; --wiki-body-dynamic-color--secondary: #333333; --wiki-body-dynamic-color--secondary--inverted: #cccccc; --wiki-content-border-color--secondary: color-mix(in srgb, var(--wiki-content-border-color) 50%, transparent); --wiki-content-border-color--accent: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); --wiki-content-link-label-color: #ffffff; --wiki-content-dynamic-color: #000000; --wiki-content-dynamic-color--inverted: #ffffff; --wiki-content-dynamic-color--secondary: #333333; --wiki-content-dynamic-color--secondary--inverted: #cccccc; /* [ LIGHT VIEW ] */ --wiki-alert-label-color: #ffffff; --wiki-warning-label-color: #ffffff; --wiki-success-label-color: #ffffff; --wiki-icon-general-filter: ; /* do not set this to none, ignore the "unexpected token" error */ /**/ } /* end light styles */ /* Begin dark styles, delete from here to "end dark styles" if you don't want your wiki to support any dark themes (remove it from [[Mediawiki:Theme-definitions]] too, or ask wiki.gg staff for help doing this) */ /* FYI: .view- will affect any theme marked |kind=dark, */ /* individual themes are prefixed with .theme- instead */ .view-dark { /********************** * Probably edit these * [ DARK VIEW ] ***********************/ --wiki-body-background-color: #171717; --wiki-body-background-image: url(/images/c/c4/Site-background-dark.jpg); /* please find the file path by viewing the image directly (not at the File: page) */ --wiki-content-background-color: #202020; --wiki-content-background-opacity: 90%; --wiki-content-border-color: #991A51; --wiki-content-link-color: #6d8afb; /* if changing this, remember to change --wiki-icon-to-link-filter as well!!! */ /* [ DARK VIEW ] */ --wiki-accent-color: #ff4d9d; --wiki-accent-label-color: #000; --wiki-accent-link-color: #1e1e43; --wiki-icon-to-link-filter: invert(60%) sepia(70%) saturate(3715%) hue-rotate(206deg) brightness(101%) contrast(97%); /* put your --wiki-content-link-color into https://mrpie5.gitlab.io/css-filter-generator/ */ /**/ /******************* * Maybe edit these * [ DARK VIEW ] ********************/ --wiki-body-background-position: top center; --wiki-body-background-size:cover; --wiki-body-background-repeat: no-repeat; --wiki-body-background-attachment: fixed; --wiki-content-background-color--secondary: color-mix(in srgb, var(--wiki-content-background-color) 96%, var(--wiki-content-dynamic-color)); --wiki-content-text-color: #ededed; --wiki-content-link-color--visited: var(--wiki-content-link-color); --wiki-content-link-color--hover: var(--wiki-content-link-color); --wiki-content-redlink-color: #FC5B4F; --wiki-content-heading-color: var(--wiki-content-text-color); --wiki-accent-color--hover: color-mix(in srgb, var(--wiki-accent-color) 90%, var(--wiki-accent-label-color)); /* [ DARK VIEW ] */ --wiki-sidebar-background-color: var(--wiki-content-background-color); --wiki-sidebar-background-opacity: var(--wiki-content-background-opacity); --wiki-sidebar-border-color: var(--wiki-content-border-color); --wiki-sidebar-link-color: var(--wiki-content-link-color); --wiki-sidebar-link-color--hover: var(--wiki-content-link-color--hover); --wiki-sidebar-heading-color: var(--wiki-content-heading-color); /* [ DARK VIEW ] */ --wiki-navigation-background-color: var(--wiki-content-background-color--secondary); --wiki-navigation-background-color--secondary: var(--wiki-content-background-color); --wiki-navigation-border-color: var(--wiki-content-border-color); --wiki-navigation-text-color: var(--wiki-content-link-color); --wiki-navigation-text-color--hover: var(--wiki-content-link-color--hover); --wiki-navigation-selected-background-color: var(--wiki-content-background-color); --wiki-navigation-selected-border-color: var(--wiki-navigation-border-color); --wiki-navigation-selected-text-color: var(--wiki-content-text-color); /* [ DARK VIEW ] */ --wiki-neutral-color: var(--wiki-content-text-mix-color); --wiki-alert-color: #ff576a; --wiki-warning-color:#cf721c; --wiki-success-color: #13aa45; /**/ /*********************************** * Likely do not need to edit these * [ DARK VIEW ] ************************************/ --wiki-body-dynamic-color: #ffffff; --wiki-body-dynamic-color--inverted: #000000; --wiki-body-dynamic-color--secondary: #cccccc; --wiki-body-dynamic-color--secondary--inverted: #333333; --wiki-content-border-color--secondary: color-mix(in srgb, var(--wiki-content-border-color) 50%, transparent); --wiki-content-border-color--accent: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); --wiki-content-link-label-color: #000; --wiki-content-dynamic-color: #ffffff; --wiki-content-dynamic-color--inverted: #000000; --wiki-content-dynamic-color--secondary: #cccccc; --wiki-content-dynamic-color--secondary--inverted: #333333; /* [ DARK VIEW ] */ --wiki-alert-label-color: #000000; --wiki-warning-label-color: #000000; --wiki-success-label-color: #000000; --wiki-icon-general-filter: invert(100%); } /* End dark styles */ /************************************** * Shared styles * * You likely don't need to edit these * ***************************************/ :root{ --wiki-content-text-mix-color: color-mix(in srgb, var(--wiki-content-background-color), var(--wiki-content-text-color) 62%); --wiki-content-text-mix-color-95: color-mix(in srgb, var(--wiki-content-background-color) 95%, var(--wiki-content-text-color)); } /******************** * End shared styles * *********************/ /****************************** * Fallback for older browsers * * DONT EDIT THIS * *******************************/ @supports not (color:color-mix(in srgb, #000, transparent)) { .view-dark, .view-light, :root { --wiki-content-text-mix-color: var(--wiki-content-text-color); --wiki-content-text-mix-color-95: var(--wiki-content-background-color); --wiki-content-background-color--secondary: var(--wiki-content-dynamic-color--secondary--inverted); --wiki-content-border-color--secondary: var(--wiki-content-border-color); --wiki-content-border-color--accent: var(--wiki-accent-color); --wiki-accent-color--hover: var(--wiki-accent-color); } } /***************************** * End older browser fallback * ******************************/ /***************************** * PortableInfoboxes * ******************************/ :root { --pi-background: var(--wiki-content-background-color); --pi-secondary-background: var(--wiki-accent-color); --pi-secondary-background-label: var(--wiki-accent-label-color); --pi-border-color: color-mix(in srgb, var(--pi-secondary-background) 50%, transparent); } .portable-infobox .pi-title, .portable-infobox .pi-header { text-align:center; font-size:1.5em; background:var(--pi-secondary-background); /* fallback */ background:color-mix(in srgb, var(--pi-secondary-background) 75%, transparent); color:var(--pi-secondary-background-label); } .portable-infobox .pi-data { background:var(--wiki-content-background-color--secondary); } .portable-infobox .pi-image { padding: 8px; } .pi-image-thumbnail { max-width:100%; } .pi-caption { color: var(--wiki-content-text-mix-color); } .pi-section-navigation .pi-section-tab.pi-section-active, .pi-section-navigation .pi-section-tab.current, .pi-media-collection .pi-tab-link.current { background: var(--pi-secondary-background); color: var(--pi-secondary-background-label); } .pi-collapse > .pi-item:first-child { cursor: pointer; } /* overqualify these to overwrite normal content heading styles */ .mw-body .portable-infobox h2, .mw-body .portable-infobox h3 { border-bottom: 0; font-family: inherit; font-weight: 700; margin: 0; } /***************************** * End PortableInfoboxes * ******************************/ /******************* * Main page layout * ********************/ #mp-container { display:grid; gap:10px; } @media screen and (max-width:990px) { /* for mobile screens */ #mp-container{ grid-template-areas:var(--main-page-layout--mobile); grid-template-columns:var(--main-page-layout-columns--mobile,100%); } .mp-box.mp-hide-on-mobile { display:none; } } @media screen and (min-width:990px) and (max-width:1350px) { /* for narrow screens, between 990px and 1350px */ #mp-container { grid-template-areas:var(--main-page-layout--tablet); grid-template-columns:var(--main-page-layout-columns--tablet,1fr 1fr); } .mp-box.mp-hide-on-tablet { display:none; } } @media screen and (min-width:1350px) { /* for all other screens, 1350px and wider */ #mp-container { grid-template-areas:var(--main-page-layout--desktop); grid-template-columns:var(--main-page-layout-columns--desktop,2fr 1fr 2fr); } .mp-box.mp-hide-on-desktop { display:none; } } .mp-box { position:relative; display:flex; flex-flow:column nowrap; width: calc(100% - 2px); box-sizing: border-box; background:var(--wiki-content-background-color--secondary); /* fallback */ background:color-mix(in srgb, var(--wiki-content-background-color--secondary) 25%, transparent); border:1px solid var(--wiki-content-border-color); padding:0px; } .mp-body { height: 100%; display: flex; padding:0.5em; flex-flow: column nowrap; } .mp-box.centered-content .mp-body { height: 100%; display: flex; flex-flow: column nowrap; justify-content: space-evenly; } .mp-box.has-floating-image { display:block; } .mp-box.has-floating-image .mp-body { height:unset; display:block; } /* overqualified to override normal heading styles */ .mw-body .mp-box h2 { text-align:center; font-weight:bold; font-family:var(--wiki-heading-font-family); overflow: initial; border-bottom: 1px solid var(--wiki-content-border-color); font-size: 150%; margin: 0; padding: 5px 0; color:var(--wiki-content-heading-color); } #mp-box-welcome { text-align:center; position:relative; overflow:hidden; } #mp-box-welcome h2{ font-size: 200%; } #mp-welcome { display:flex; flex-flow:column nowrap; position: relative; height: 100%; z-index: 2; box-sizing: border-box; } #mp-welcome .welcome-subtitle { height: 100%; background:var(--wiki-content-dynamic-color--inverted); /* fallback */ background:color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 85%, transparent); padding:0.5em; } #mp-banner { position: absolute; width: 100%; height: 100%; filter: blur(5px); z-index: -1; background: url(/images/e/e0/MP_banner.jpg); background-size: cover; background-repeat: no-repeat; background-position: top center; } .view-dark #mp-banner { filter: blur(5px) brightness(50%); } .view-light #mp-banner { filter: blur(5px) contrast(50%); } /* [[Template:MP_link]] */ .mp-links { --gap:10px; } .mp-links > ul { display: flex; flex-flow: row wrap; justify-content: space-evenly; margin: 2px; gap:var(--gap); } .mp-links > ul > li { display:flex; flex-flow:column nowrap; align-items:stretch; text-align: center; box-sizing:border-box; flex: max(calc(50% - var(--gap)), 5em) 1 1; outline:1px solid var(--wiki-content-link-color); transition:0.1s ease-in; } .mp-links > ul > li:hover { background-color:var(--wiki-content-background-color); /* fallback */ background-color:color-mix(in srgb, var(--wiki-content-link-color) 20%, transparent); } .mp-links.columns-1 > ul > li {flex: max(calc(100% - var(--gap)), 5em) 1 1;} .mp-links.columns-2 > ul > li {flex: max(calc(50% - var(--gap)), 5em) 1 1;} .mp-links.columns-3 > ul > li {flex: max(calc((100% / 3) - var(--gap)), 5em) 1 1;} .mp-links.columns-4 > ul > li {flex: max(calc(25% - var(--gap)), 5em) 1 1;} .mp-links.columns-5 > ul > li {flex: max(calc(20% - var(--gap)), 5em) 1 1;} .mp-links.columns-6 > ul > li {flex: max(calc((100% / 6) - var(--gap)), 5em) 1 1;} .mp-links.columns-7 > ul > li {flex: max(calc((100% / 7) - var(--gap)), 5em) 1 1;} .mp-links.columns-max > ul > li {flex: max(calc(0% - var(--gap)), 5em) 1 1;} .mp-links > ul > li:hover a { text-decoration: underline; } .mp-links > ul > li > a { display: flex; align-items: center; justify-content: center; height:100%; flex:1 1 auto; box-sizing:border-box; padding:5px; } .mp-links > ul > li > a:first-child { height:100%; } .mp-links > ul > li > a:last-child:not(:first-child) { height:unset; } .mp-links.stretch, .mp-links.stretch > ul { height:100%; } .mp-links.side-image li { flex-flow:row nowrap; } .mp-links.plain > ul > li { outline-color:transparent; } /*********************** * End main page layout * ************************/ /********************************************************************************************************************* * Semantically-correct horizontal lists (for Module:Navbox, and they're more machine-readable than {{*}}-formatting) * **********************************************************************************************************************/ .hlist dl, .hlist ol, .hlist ul { margin: 0; padding: 0; } /* Display list items inline */ .hlist dd, .hlist dt, .hlist li { /* * don't trust the note that says margin doesn't work with inline * removing margin: 0 makes dds have margins again * We also want to reset margin-right in Minerva */ margin: 0; display: inline; } /* Display requested top-level lists inline */ .hlist.inline, .hlist.inline dl, .hlist.inline ol, .hlist.inline ul, /* Display nested lists inline */ .hlist dl dl, .hlist dl ol, .hlist dl ul, .hlist ol dl, .hlist ol ol, .hlist ol ul, .hlist ul dl, .hlist ul ol, .hlist ul ul { display: inline; } /* Hide empty list items */ .hlist .mw-empty-li { display: none; } /* TODO: :not() can maybe be used here to remove the later rule. naive test * seems to work. more testing needed. like so: */ .hlist dt:not(:last-child)::after { content: ":\20"; } .hlist dd:not(:last-child)::after, .hlist li:not(:last-child)::after { /* "space, Middle Dot, space" We use unicode numbers instead of the raw characters due to a Firefox encoding bug on unicode characters. The space is also encoded because raw spaces combined with a unicode number strips the spaces under some conditions such as single-line lists */ /* content: "\20\00B7\20"; font-weight: bold; */ /* "space &nbsp; β€’ &nbsp; space" There may (and likely) be an extra whitespace between <li>s, therefore we have to use a space character as last character of this sequence. By this way, the last space and the next whitespce will collapse as a single space, to make the whitespace on both sides of the middle dot the same width. */ content: "\20\A0\2022\A0\20"; font-weight: inherit; } /* Add parentheses around nested lists */ .hlist dd ol::before, .hlist dd ul::before, .hlist dd dl::before, .hlist dt ol::before, .hlist dt ul::before, .hlist dt dl::before, .hlist li ol::before, .hlist li ul::before, .hlist li dl::before { content: "\20("; font-weight: inherit; } .hlist dd ol::after, .hlist dd ul::after, .hlist dd dl::after, .hlist dt ol::after, .hlist dt ul::after, .hlist dt dl::after, .hlist li ol::after, .hlist li ul::after, .hlist li dl::after { content: ")"; font-weight: inherit; } /* Put ordinals in front of ordered list items */ .hlist ol { counter-reset: listitem; } .hlist ol > li { counter-increment: listitem; } .hlist ol > li::before { content: " " counter(listitem) ".\20"; } /* Progressive enhancement: * try to make the dot always follow the list item in same line */ .hlist :is(li,dt,dd):not(:has(:is(li,dt,dd))){ display: inline-block; } /******************************************** * End semantically-correct horizontal lists * *********************************************/ /*** Miscellaneous ***/ .responsive-image { max-width:100%; height:auto; } .view-dark .invert-on-dark, .view-light .invert-on-light { filter:invert(100%); } .pixelated { image-rendering:pixelated; } @media screen and (min-width:720px) { .mobileonly { display:none; } } @media screen and (max-width:720px) { .nomobile { display:none; } } /*** Utility classes for standard MW galleries ***/ /* it's important that spaced comes before centered in the sheet */ .gallery.gallery.gallery.spaced { /* this selector looks ridiculous but is actually part of stock Vector and therefore a necessary override */ display:flex; flex-flow:row wrap; justify-content:space-evenly; margin-left:unset; } .gallery.centered { text-align:center; } /************************** * Start Modular Templates * **************************/ /********* [[Template:Ambox]] *********/ .ambox { --ambox-color:var(--wiki-accent-color); border: 1px solid var(--wiki-content-border-color); border-left: 10px solid var(--ambox-color); border-radius: 2px; display: flex; align-items: center; gap: .6em; margin: 1em 0; padding: 3px .6em; background-color: var(--wiki-content-background-color--secondary); box-shadow: 2px 2px 5px 0px #0002; } @media (min-width: 720px) { .ambox { margin-inline: 10%; } } .ambox.tiny { padding: .04rem .5em; margin-inline: 0; width: fit-content; } .ambox + .ambox { margin-top: -.6em; } .ambox-content { flex: 1; } .ambox-content p { margin: .15em 0; } .ambox-title { font-weight: bold; } /********* [[Template:Hatnote]] *********/ .hatnote { padding: 1px 0 1px 1.6em; margin-bottom: 0.5em; font-style: italic; border-top: 1px solid var(--wiki-content-border-color--secondary); border-bottom: 1px solid var(--wiki-content-border-color--secondary); } .hatnote.icon { padding-left: 0; } /********* [[Template:Spoiler]] *********/ .spoiler-content { background-color: var(--wiki-content-dynamic-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 50%, transparent); transition: all 0.3s; cursor: pointer; overflow:auto; } .spoiler-content > * { pointer-events:none; opacity: 0; transition: all 0.3s; } .spoiler-content.show { background-color: transparent; } .spoiler-content.show > * { pointer-events:unset; opacity: 1; } /********* [[Template:Link icon]] *********/ .link-icon { --link-icon-line-height: 1.5em; --link-icon-size: 1.5em; display: inline-flex; align-items: center; height: var(--link-icon-line-height); vertical-align: bottom; } .link-icon .regular { align-self: center; } .link-icon .regular a { display: flex; } .link-icon .regular img { height: var(--link-icon-size); max-width: var(--link-icon-size); } .link-icon .fallback { outline: 1px solid var(--wiki-content-text-color); border-radius: 50%; text-align: center; width: var(--link-icon-size); line-height: var(--link-icon-size); } .link-icon.notext .fallback { display: inline-block; } .link-icon.notext { display: inline; } /********* [[Template:Quote]] *********/ .quote { background: var(--wiki-content-background-color--secondary); border-radius: 5px; border: 2px solid var(--wiki-content-border-color); margin: .5em 0; padding: .5em; overflow-y: hidden; } .quote .block { display: block; } .quote .title { font-size: large; font-weight: bold; } .quote .content { font-style: italic; } .quote .author { font-weight: bold; text-align: end; } .quote .marks-wrapper { display: flex; gap: 5px; } .quote .marks-wrapper::before, .quote .marks-wrapper::after { font-size: 100px; line-height: 0px; } .quote .marks-wrapper::before { content: "\201C"; margin-top: 40px; } .quote .marks-wrapper::after { content: "\201D"; align-self: end; margin-bottom: -10px; } .client-js .mw-charinsert-item { display:none; } /************************ * End Modular Templates * *************************/ /***************************** * Used by [[Template:Color]] * ******************************/ .color__splotch { display:inline-block; height:1em; width:1em; box-sizing:border-box; vertical-align:text-top; border-radius:50%; border:1px solid var(--wiki-content-text-color); } /********************* * End Template:Color * **********************/ /* Navi Grid Stuff */ .navi-grid { display: flex; flex-wrap: wrap; /* Allows items to wrap to the next row */ gap: 30px; /* Space between items */ justify-content: center; /* Center-align the grid */ margin: 20px 0; /* Add vertical spacing */ } .navi-item { position: relative; text-align: center; width: 200px; padding: 10px; background-color: #1d1e1e; border: 2px solid #ddd; border-radius: 8px; transition: transform 0.2s, box-shadow 0.2s, background-color 0.2s; overflow: hidden; } .navi-item a::after { content: ""; position: absolute; inset: 0; } .navi-item:hover { transform: scale(1.05); /* Slight zoom-in effect on hover */ background-color: #323434; /* Change background on hover */ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Add shadow on hover */ } /* Add padding to the image to expand the clickable area */ .navi-item img { width: calc(100% - 20px); /* Adjust width to fit within the box */ height: auto; /* Maintain aspect ratio */ padding: 10px; /* Expand clickable area */ object-fit: cover; /* Ensures the image fits perfectly */ display: block; /* Removes extra inline spacing */ } .navi-name { font-size: 1.1em; /* Font size for the name */ margin-top: 10px; /* Space between the image and the text */ font-weight: bold; /* Bold text */ text-align: center; color: #fff; /* Text color */ word-wrap: break-word; /* Handles long names */ } /* Skills */ .navi-item:has(img[alt="Skills"]) { border-color: #A600D3; } .navi-item:has(img[alt="Skills"]) .navi-name a { color: #A600D3; } /* Magics */ .navi-item:has(img[alt="Magics"]) { border-color: #398BC2; } .navi-item:has(img[alt="Magics"]) .navi-name a { color: #398BC2; } /* Battlewills */ .navi-item:has(img[alt="Battlewills"]) { border-color: #FFA500; } .navi-item:has(img[alt="Battlewills"]) .navi-name a { color: #FFA500; } .navi-item:has(img[alt="Spiritual Magic"]) { border-color: #7349B3; } .navi-item:has(img[alt="Spiritual Magic"]) .navi-name a { color: #7349B3; } .navi-item:has(img[alt="Summoning Magic"]) { border-color: #3B62BB; } .navi-item:has(img[alt="Summoning Magic"]) .navi-name a { color: #3B62BB; } /* Resistances */ .navi-item:has(img[alt="Resistances"]) { border-color: #00a8a8; } .navi-item:has(img[alt="Resistances"]) .navi-name a { color: #00a8a8; } /* Intrinsic Skills */ .navi-item:has(img[alt="Intrinsic Skills"]) { border-color: #54fcfc; } .navi-item:has(img[alt="Intrinsic Skills"]) .navi-name a { color: #54fcfc; } /* Common Skills */ .navi-item:has(img[alt="Common Skills"]) { border-color: #54fc54; } .navi-item:has(img[alt="Common Skills"]) .navi-name a { color: #54fc54; } /* Extra Skills */ .navi-item:has(img[alt="Extra Skills"]) { border-color: #fcfc54; } .navi-item:has(img[alt="Extra Skills"]) .navi-name a { color: #fcfc54; } /* Unique Skills */ .navi-item:has(img[alt="Unique Skills"]) { border-color: #fca800; } .navi-item:has(img[alt="Unique Skills"]) .navi-name a { color: #fca800; } /* Ultimate Skills */ .navi-item:has(img[alt="Ultimate Skills"]) { border-color: #fc5454; } .navi-item:has(img[alt="Ultimate Skills"]) .navi-name a { color: #fc5454; } .animated > * { display: none; } .animated > .animated-active { display: block; } .animated-subframe > * { display: none; } .animated-subframe > .animated-active { display: block; } /* End of Navi Grid */ 0d970c18498c9e96306ae86c02a8151f97393c73 Abilities/Skills 0 301 341 2025-04-10T17:44:49Z UnluckyWarl0ck 588787 Created page with "{{DISPLAYTITLE:Skills}} <div class="navi-grid"> <!-- <div class="navi-item"> [[File:Resistances.png|128px|link=:Category:Resistances|alt=Resistances]] <div class="navi-name">[[:Category:Resistances|Resistances]]</div> </div> --> <div class="navi-item"> [[File:Intrinsic.png|128px|link=:Category:Intrinsic Skills|alt=Intrinsic Skills]] <div class="navi-name">[[:Category:Intrinsic Skills|Intrinsic Skills]]</div> </div> <!-- <div class="navi-item">..." wikitext text/x-wiki {{DISPLAYTITLE:Skills}} <div class="navi-grid"> <!-- <div class="navi-item"> [[File:Resistances.png|128px|link=:Category:Resistances|alt=Resistances]] <div class="navi-name">[[:Category:Resistances|Resistances]]</div> </div> --> <div class="navi-item"> [[File:Intrinsic.png|128px|link=:Category:Intrinsic Skills|alt=Intrinsic Skills]] <div class="navi-name">[[:Category:Intrinsic Skills|Intrinsic Skills]]</div> </div> <!-- <div class="navi-item"> [[File:Common.png|128px|link=:Category:Common Skills|alt=Common Skills]] <div class="navi-name">[[:Category:Common Skills|Common Skills]]</div> </div> --> <div class="navi-item"> [[File:Extra.png|128px|link=:Category:Extra Skills|alt=Extra Skills]] <div class="navi-name">[[:Category:Extra Skills|Extra Skills]]</div> </div> <div class="navi-item"> [[File:Unique.png|128px|link=:Category:Unique Skills|alt=Unique Skills]] <div class="navi-name">[[:Category:Unique Skills|Unique Skills]]</div> </div> <div class="navi-item"> [[File:Ultimate.png|128px|link=:Category:Ultimate Skills|alt=Ultimate Skills]] <div class="navi-name">[[:Category:Ultimate Skills|Ultimate Skills]]</div> </div> </div> {{SkillsNavbox}} 0721c7f1bb829ba260965b255c63b2e85f9d2f82 344 341 2025-04-10T17:47:46Z UnluckyWarl0ck 588787 wikitext text/x-wiki {{DISPLAYTITLE:Skills}} <div class="navi-grid"> <!-- <div class="navi-item"> [[File:Resistances.png|128px|link=:Category:Resistances|alt=Resistances]] <div class="navi-name">[[:Category:Resistances|Resistances]]</div> </div> --> <div class="navi-item"> [[File:Intrinsic.png|128px|link=:Category:Intrinsic Skills|alt=Intrinsic Skills]] <div class="navi-name">[[:Category:Intrinsic Skills|Intrinsic Skills]]</div> </div> <!-- <div class="navi-item"> [[File:Common.png|128px|link=:Category:Common Skills|alt=Common Skills]] <div class="navi-name">[[:Category:Common Skills|Common Skills]]</div> </div> --> <div class="navi-item"> [[File:Extra.png|128px|link=:Category:Extra Skills|alt=Extra Skills]] <div class="navi-name">[[:Category:Extra Skills|Extra Skills]]</div> </div> <div class="navi-item"> [[File:Unique.png|128px|link=:Category:Unique Skills|alt=Unique Skills]] <div class="navi-name">[[:Category:Unique Skills|Unique Skills]]</div> </div> <div class="navi-item"> [[File:Ultimate.webp|128px|link=:Category:Ultimate Skills|alt=Ultimate Skills]] <div class="navi-name">[[:Category:Ultimate Skills|Ultimate Skills]]</div> </div> </div> {{SkillsNavbox}} bd37789ab13c17e44fa8340d666970add6ed19c8 347 344 2025-04-10T17:49:14Z UnluckyWarl0ck 588787 wikitext text/x-wiki {{DISPLAYTITLE:Skills}} <div class="navi-grid"> <!-- <div class="navi-item"> [[File:Resistances.png|128px|link=:Category:Resistances|alt=Resistances]] <div class="navi-name">[[:Category:Resistances|Resistances]]</div> </div> --> <div class="navi-item"> [[File:Intrinsic.webp|128px|link=:Category:Intrinsic Skills|alt=Intrinsic Skills]] <div class="navi-name">[[:Category:Intrinsic Skills|Intrinsic Skills]]</div> </div> <!-- <div class="navi-item"> [[File:Common.png|128px|link=:Category:Common Skills|alt=Common Skills]] <div class="navi-name">[[:Category:Common Skills|Common Skills]]</div> </div> --> <div class="navi-item"> [[File:Extra.webp|128px|link=:Category:Extra Skills|alt=Extra Skills]] <div class="navi-name">[[:Category:Extra Skills|Extra Skills]]</div> </div> <div class="navi-item"> [[File:Unique.png|128px|link=:Category:Unique Skills|alt=Unique Skills]] <div class="navi-name">[[:Category:Unique Skills|Unique Skills]]</div> </div> <div class="navi-item"> [[File:Ultimate.webp|128px|link=:Category:Ultimate Skills|alt=Ultimate Skills]] <div class="navi-name">[[:Category:Ultimate Skills|Ultimate Skills]]</div> </div> </div> {{SkillsNavbox}} 65d97b8543e654bb7d560d29e3a08cb53c76b67f File:Ultimate.webp 6 302 342 2025-04-10T17:46:54Z UnluckyWarl0ck 588787 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Unique.png 6 303 343 2025-04-10T17:47:11Z UnluckyWarl0ck 588787 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Extra.webp 6 304 345 2025-04-10T17:48:19Z UnluckyWarl0ck 588787 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Intrinsic.webp 6 305 346 2025-04-10T17:48:33Z UnluckyWarl0ck 588787 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Category:Unique Skills 14 306 348 2025-04-10T17:51:10Z UnluckyWarl0ck 588787 Created page with "{{DISPLAYTITLE:<span style="color: #fca800;">Unique Skills</span>}} [[Category:Skills]] <big><big>A <span style="color: #fca800;">'''Unique Skill'''</span> is fundamentally different from the lower Skills. These Skills represent the wielder's desires and will, in the form of a usable ability.</big></big>" wikitext text/x-wiki {{DISPLAYTITLE:<span style="color: #fca800;">Unique Skills</span>}} [[Category:Skills]] <big><big>A <span style="color: #fca800;">'''Unique Skill'''</span> is fundamentally different from the lower Skills. These Skills represent the wielder's desires and will, in the form of a usable ability.</big></big> 4aa177bcaec4287703331aa93b737ff184944a32 Category:Extra Skills 14 307 349 2025-04-10T17:51:42Z UnluckyWarl0ck 588787 Created page with "<big><big>An <span style="color: #fcfc54;">'''Extra Skill'''</span> refers to Skills with power and efficiency magnitudes higher than those of Common Skills.</big></big>" wikitext text/x-wiki <big><big>An <span style="color: #fcfc54;">'''Extra Skill'''</span> refers to Skills with power and efficiency magnitudes higher than those of Common Skills.</big></big> f66ae5b42fa8a76e6a3db9c46d052c9779e592cc Category:Ultimate Skills 14 308 350 2025-04-10T17:52:14Z UnluckyWarl0ck 588787 Created page with "<big><big>An <span style="color: #fc5454;">'''Ultimate Skill'''</span>, as it is called, is a device to grant access to the ultimate principles of the world. That is why, in order to combat against an Ultimate Skill, one must employ an Ultimate Skill as well.</big></big> The requirements for awakening a Ultimate Skill in mysticism are: Be awakened as a True Demon Lord or True Hero Have enough MP, And have all listed skills mastered (This will vary in which skill and..." wikitext text/x-wiki <big><big>An <span style="color: #fc5454;">'''Ultimate Skill'''</span>, as it is called, is a device to grant access to the ultimate principles of the world. That is why, in order to combat against an Ultimate Skill, one must employ an Ultimate Skill as well.</big></big> The requirements for awakening a Ultimate Skill in mysticism are: Be awakened as a True Demon Lord or True Hero Have enough MP, And have all listed skills mastered (This will vary in which skill and how many from Ultimate to Ultimate) 549361da58418b9f0e32c70b2365242ec4b7462f Category:Ultimate Skills 14 308 351 350 2025-04-10T17:52:28Z UnluckyWarl0ck 588787 wikitext text/x-wiki <big><big>An <span style="color: #fc5454;">'''Ultimate Skill'''</span>, as it is called, is a device to grant access to the ultimate principles of the world. That is why, in order to combat against an Ultimate Skill, one must employ an Ultimate Skill as well.</big></big> The requirements for awakening a Ultimate Skill in eldritch are: Be awakened as a True Demon Lord or True Hero Have enough MP, And have all listed skills mastered (This will vary in which skill and how many from Ultimate to Ultimate) abdc1fcb9c357131d82a7da1212f92f67a1caf4b MediaWiki:Common.css 8 226 352 339 2025-04-10T18:01:34Z UnluckyWarl0ck 588787 css text/css /* CSS placed here will be applied to all skins */ :root{ /* start font settings */ --wiki-body-font-family: sans-serif; --wiki-heading-font-family: 'Linux Libertine','Georgia','Times',serif; --wiki-sidebar-heading-font-family: sans-serif; /* end font settings */ /* start design variables */ --wiki-sidebar-border-radius:0px; /* these two variables must have units specified even if 0, ignore the warning */ --wiki-sidebar-portal-spacing:0px; --wiki-content-border-width:1px; --wiki-sidebar-border-width:1px; /* end design variables */ } /* the rest of the variables will modify some type of color, either text color, background color, border color, etc. */ :root, /* Begin light styles, delete from here to "end light styles" if you don't want your wiki to support any light themes (remove from [[Mediawiki:Theme-definitions]] too, or ask wiki.gg staff for help doing this) */ /* FYI: .view- will affect any theme marked |kind=light, */ /* individual themes are prefixed with .theme- instead */ .view-light { /********************** * Probably edit these * [ LIGHT VIEW ] ***********************/ --wiki-body-background-color: #F6F6F6; --wiki-body-background-image: url(/images/8/80/Site-background.jpg); /* please find the file path by viewing the image directly (click the image from the File: page) */ --wiki-content-background-color: #ffffff; --wiki-content-background-opacity: 100%; --wiki-content-border-color: #a7d7f9; --wiki-content-link-color: #0645ad; /* if changing this, remember to change --wiki-icon-to-link-filter as well!!! */ /* [ LIGHT VIEW ] */ --wiki-accent-color: #3366cc; --wiki-accent-label-color: #ffffff; --wiki-accent-link-color: #D5FB51; --wiki-icon-to-link-filter: invert(20%) sepia(93%) saturate(2141%) hue-rotate(210deg) brightness(83%) contrast(103%); /* put your --wiki-content-link-color into https://mrpie5.gitlab.io/css-filter-generator/ */ /**/ /******************* * Maybe edit these * [ LIGHT VIEW ] ********************/ --wiki-body-background-position: top center; --wiki-body-background-size:cover; --wiki-body-background-repeat: no-repeat; --wiki-body-background-attachment: fixed; --wiki-content-background-color--secondary: color-mix(in srgb, var(--wiki-content-background-color) 96%, var(--wiki-content-dynamic-color)); --wiki-content-text-color: #111111; --wiki-content-link-color--visited: var(--wiki-content-link-color); --wiki-content-link-color--hover: var(--wiki-content-link-color); --wiki-content-redlink-color: #ba0000; --wiki-content-heading-color: var(--wiki-content-text-color); --wiki-accent-color--hover: color-mix(in srgb, var(--wiki-accent-color) 95%, var(--wiki-accent-label-color)); /* [ LIGHT VIEW ] */ --wiki-sidebar-background-color: var(--wiki-content-background-color); --wiki-sidebar-background-opacity: var(--wiki-content-background-opacity); --wiki-sidebar-border-color: var(--wiki-content-border-color); --wiki-sidebar-link-color: var(--wiki-content-link-color); --wiki-sidebar-link-color--hover: var(--wiki-content-link-color--hover); --wiki-sidebar-heading-color: var(--wiki-content-heading-color); /* [ LIGHT VIEW ] */ --wiki-navigation-background-color: var(--wiki-content-background-color--secondary); --wiki-navigation-background-color--secondary: var(--wiki-content-background-color); --wiki-navigation-border-color: var(--wiki-content-border-color); --wiki-navigation-text-color: var(--wiki-content-link-color); --wiki-navigation-text-color--hover: var(--wiki-content-link-color--hover); --wiki-navigation-selected-background-color: var(--wiki-content-background-color); --wiki-navigation-selected-border-color: var(--wiki-navigation-border-color); --wiki-navigation-selected-text-color: var(--wiki-content-text-color); /* [ LIGHT VIEW ] */ --wiki-neutral-color: var(--wiki-content-text-mix-color); --wiki-alert-color: #bf0017; --wiki-warning-color: #b05f30; --wiki-success-color: #0c742f; /**/ /*********************************** * Likely do not need to edit these * [ LIGHT VIEW ] ************************************/ --wiki-body-dynamic-color: #000000; --wiki-body-dynamic-color--inverted: #ffffff; --wiki-body-dynamic-color--secondary: #333333; --wiki-body-dynamic-color--secondary--inverted: #dddddd; --wiki-content-border-color--secondary: color-mix(in srgb, var(--wiki-content-border-color) 50%, transparent); --wiki-content-border-color--accent: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); --wiki-content-link-label-color: #ffffff; --wiki-content-dynamic-color: #000000; --wiki-content-dynamic-color--inverted: #ffffff; --wiki-content-dynamic-color--secondary: #333333; --wiki-content-dynamic-color--secondary--inverted: #dddddd; /* [ LIGHT VIEW ] */ --wiki-alert-label-color: #ffffff; --wiki-warning-label-color: #ffffff; --wiki-success-label-color: #ffffff; --wiki-icon-general-filter: ; /* do not set this to none, ignore the "unexpected token" error */ /**/ } /* end light styles */ /* Begin dark styles, delete from here to "end dark styles" if you don't want your wiki to support any dark themes (remove it from [[Mediawiki:Theme-definitions]] too, or ask wiki.gg staff for help doing this) */ /* FYI: .view- will affect any theme marked |kind=dark, */ /* individual themes are prefixed with .theme- instead */ .view-dark { /********************** * Probably edit these * [ DARK VIEW ] ***********************/ --wiki-body-background-color: #171717; --wiki-body-background-image: url(/images/c/c4/Site-background-dark.jpg); /* please find the file path by viewing the image directly (not at the File: page) */ --wiki-content-background-color: #202020; --wiki-content-background-opacity: 90%; --wiki-content-border-color: #991A51; --wiki-content-link-color: #6d8afb; /* if changing this, remember to change --wiki-icon-to-link-filter as well!!! */ /* [ DARK VIEW ] */ --wiki-accent-color: #ff4d9d; --wiki-accent-label-color: #000; --wiki-accent-link-color: #1e1e43; --wiki-icon-to-link-filter: invert(60%) sepia(70%) saturate(3715%) hue-rotate(206deg) brightness(101%) contrast(97%); /* put your --wiki-content-link-color into https://mrpie5.gitlab.io/css-filter-generator/ */ /**/ /******************* * Maybe edit these * [ DARK VIEW ] ********************/ --wiki-body-background-position: top center; --wiki-body-background-size:cover; --wiki-body-background-repeat: no-repeat; --wiki-body-background-attachment: fixed; --wiki-content-background-color--secondary: color-mix(in srgb, var(--wiki-content-background-color) 96%, var(--wiki-content-dynamic-color)); --wiki-content-text-color: #ededed; --wiki-content-link-color--visited: var(--wiki-content-link-color); --wiki-content-link-color--hover: var(--wiki-content-link-color); --wiki-content-redlink-color: #FC5B4F; --wiki-content-heading-color: var(--wiki-content-text-color); --wiki-accent-color--hover: color-mix(in srgb, var(--wiki-accent-color) 90%, var(--wiki-accent-label-color)); /* [ DARK VIEW ] */ --wiki-sidebar-background-color: var(--wiki-content-background-color); --wiki-sidebar-background-opacity: var(--wiki-content-background-opacity); --wiki-sidebar-border-color: var(--wiki-content-border-color); --wiki-sidebar-link-color: var(--wiki-content-link-color); --wiki-sidebar-link-color--hover: var(--wiki-content-link-color--hover); --wiki-sidebar-heading-color: var(--wiki-content-heading-color); /* [ DARK VIEW ] */ --wiki-navigation-background-color: var(--wiki-content-background-color--secondary); --wiki-navigation-background-color--secondary: var(--wiki-content-background-color); --wiki-navigation-border-color: var(--wiki-content-border-color); --wiki-navigation-text-color: var(--wiki-content-link-color); --wiki-navigation-text-color--hover: var(--wiki-content-link-color--hover); --wiki-navigation-selected-background-color: var(--wiki-content-background-color); --wiki-navigation-selected-border-color: var(--wiki-navigation-border-color); --wiki-navigation-selected-text-color: var(--wiki-content-text-color); /* [ DARK VIEW ] */ --wiki-neutral-color: var(--wiki-content-text-mix-color); --wiki-alert-color: #ff576a; --wiki-warning-color:#cf721c; --wiki-success-color: #13aa45; /**/ /*********************************** * Likely do not need to edit these * [ DARK VIEW ] ************************************/ --wiki-body-dynamic-color: #ffffff; --wiki-body-dynamic-color--inverted: #000000; --wiki-body-dynamic-color--secondary: #dddddd; --wiki-body-dynamic-color--secondary--inverted: #333333; --wiki-content-border-color--secondary: color-mix(in srgb, var(--wiki-content-border-color) 50%, transparent); --wiki-content-border-color--accent: color-mix(in srgb, var(--wiki-accent-color) 50%, transparent); --wiki-content-link-label-color: #000; --wiki-content-dynamic-color: #ffffff; --wiki-content-dynamic-color--inverted: #000000; --wiki-content-dynamic-color--secondary: #dddddd; --wiki-content-dynamic-color--secondary--inverted: #333333; /* [ DARK VIEW ] */ --wiki-alert-label-color: #000000; --wiki-warning-label-color: #000000; --wiki-success-label-color: #000000; --wiki-icon-general-filter: invert(100%); } /* End dark styles */ /************************************** * Shared styles * * You likely don't need to edit these * ***************************************/ :root{ --wiki-content-text-mix-color: color-mix(in srgb, var(--wiki-content-background-color), var(--wiki-content-text-color) 62%); --wiki-content-text-mix-color-95: color-mix(in srgb, var(--wiki-content-background-color) 95%, var(--wiki-content-text-color)); } /******************** * End shared styles * *********************/ /****************************** * Fallback for older browsers * * DONT EDIT THIS * *******************************/ @supports not (color:color-mix(in srgb, #000, transparent)) { .view-dark, .view-light, :root { --wiki-content-text-mix-color: var(--wiki-content-text-color); --wiki-content-text-mix-color-95: var(--wiki-content-background-color); --wiki-content-background-color--secondary: var(--wiki-content-dynamic-color--secondary--inverted); --wiki-content-border-color--secondary: var(--wiki-content-border-color); --wiki-content-border-color--accent: var(--wiki-accent-color); --wiki-accent-color--hover: var(--wiki-accent-color); } } /***************************** * End older browser fallback * ******************************/ /***************************** * PortableInfoboxes * ******************************/ :root { --pi-background: var(--wiki-content-background-color); --pi-secondary-background: var(--wiki-accent-color); --pi-secondary-background-label: var(--wiki-accent-label-color); --pi-border-color: color-mix(in srgb, var(--pi-secondary-background) 50%, transparent); } .portable-infobox .pi-title, .portable-infobox .pi-header { text-align:center; font-size:1.5em; background:var(--pi-secondary-background); /* fallback */ background:color-mix(in srgb, var(--pi-secondary-background) 75%, transparent); color:var(--pi-secondary-background-label); } .portable-infobox .pi-data { background:var(--pi-secondary-background); /* fallback */ background:color-mix(in srgb, var(--pi-secondary-background) 18%, transparent); } .portable-infobox .pi-image { padding: 8px; } .pi-image-thumbnail { max-width:100%; } .pi-caption { color: var(--wiki-content-text-mix-color); } .pi-section-navigation .pi-section-tab.pi-section-active, .pi-section-navigation .pi-section-tab.current, .pi-media-collection .pi-tab-link.current { background: var(--pi-secondary-background); color: var(--pi-secondary-background-label); } /* overqualify these to overwrite normal content heading styles */ .mw-body .portable-infobox h2, .mw-body .portable-infobox h3 { border-bottom: 0; font-family: inherit; font-weight: 700; margin: 0; } /***************************** * End PortableInfoboxes * ******************************/ /******************* * Main page layout * ********************/ #mp-container { display:grid; gap:10px; } @media screen and (max-width:990px) { /* for mobile screens */ #mp-container{ grid-template-areas:var(--main-page-layout--mobile); grid-template-columns:var(--main-page-layout-columns--mobile,100%); } .mp-box.mp-hide-on-mobile { display:none; } } @media screen and (min-width:990px) and (max-width:1350px) { /* for narrow screens, between 990px and 1350px */ #mp-container { grid-template-areas:var(--main-page-layout--tablet); grid-template-columns:var(--main-page-layout-columns--tablet,1fr 1fr); } .mp-box.mp-hide-on-tablet { display:none; } } @media screen and (min-width:1350px) { /* for all other screens, 1350px and wider */ #mp-container { grid-template-areas:var(--main-page-layout--desktop); grid-template-columns:var(--main-page-layout-columns--desktop,2fr 1fr 2fr); } .mp-box.mp-hide-on-desktop { display:none; } } .mp-box { position:relative; display:flex; flex-flow:column nowrap; width: calc(100% - 2px); box-sizing: border-box; background:var(--wiki-content-background-color--secondary); /* fallback */ background:color-mix(in srgb, var(--wiki-content-background-color--secondary) 25%, transparent); border:1px solid var(--wiki-content-border-color); padding:0px; } .mp-body { height: 100%; display: flex; padding:0.5em; flex-flow: column nowrap; } .mp-box.centered-content .mp-body { height: 100%; display: flex; flex-flow: column nowrap; justify-content: space-evenly; } .mp-box.has-floating-image { display:block; } .mp-box.has-floating-image .mp-body { height:unset; display:block; } /* overqualified to override normal heading styles */ .mw-body .mp-box h2 { text-align:center; font-weight:bold; font-family:var(--wiki-heading-font-family); overflow: initial; border-bottom: 1px solid var(--wiki-content-border-color); font-size: 150%; margin: 0; padding: 5px 0; color:var(--wiki-content-heading-color); } #mp-box-welcome { text-align:center; position:relative; overflow:hidden; } #mp-box-welcome h2{ font-size: 200%; } #mp-welcome { display:flex; flex-flow:column nowrap; position: relative; height: 100%; z-index: 2; box-sizing: border-box; } #mp-welcome .welcome-subtitle { height: 100%; background:var(--wiki-content-dynamic-color--inverted); /* fallback */ background:color-mix(in srgb, var(--wiki-content-dynamic-color--inverted) 85%, transparent); padding:0.5em; } #mp-banner { position: absolute; width: 100%; height: 100%; filter: blur(5px); z-index: -1; background: url(/images/e/e0/MP_banner.jpg); background-size: cover; background-repeat: no-repeat; background-position: top center; } .view-dark #mp-banner { filter: blur(5px) brightness(50%); } .view-light #mp-banner { filter: blur(5px) contrast(50%); } /* [[Template:MP_link]] */ .mp-links { --gap:10px; } .mp-links > ul { display: flex; flex-flow: row wrap; justify-content: space-evenly; margin: 2px; gap:var(--gap); } .mp-links > ul > li { display:flex; flex-flow:column nowrap; align-items:stretch; text-align: center; box-sizing:border-box; flex: max(calc(50% - var(--gap)), 5em) 1 1; outline:1px solid var(--wiki-content-link-color); transition:0.1s ease-in; } .mp-links > ul > li:hover { background-color:var(--wiki-content-link-color); /* fallback */ background-color:color-mix(in srgb, var(--wiki-content-link-color) 20%, transparent); } .mp-links.columns-1 > ul > li {flex: max(calc(100% - var(--gap)), 5em) 1 1;} .mp-links.columns-2 > ul > li {flex: max(calc(50% - var(--gap)), 5em) 1 1;} .mp-links.columns-3 > ul > li {flex: max(calc((100% / 3) - var(--gap)), 5em) 1 1;} .mp-links.columns-4 > ul > li {flex: max(calc(25% - var(--gap)), 5em) 1 1;} .mp-links.columns-5 > ul > li {flex: max(calc(20% - var(--gap)), 5em) 1 1;} .mp-links.columns-6 > ul > li {flex: max(calc((100% / 6) - var(--gap)), 5em) 1 1;} .mp-links.columns-7 > ul > li {flex: max(calc((100% / 7) - var(--gap)), 5em) 1 1;} .mp-links.columns-max > ul > li {flex: max(calc(0% - var(--gap)), 5em) 1 1;} .mp-links > ul > li:hover a { text-decoration: underline; } .mp-links > ul > li > a { display: flex; align-items: center; justify-content: center; height:100%; flex:1 1 auto; box-sizing:border-box; padding:5px; } .mp-links > ul > li > a:first-child { height:100%; } .mp-links > ul > li > a:last-child:not(:first-child) { height:unset; } .mp-links.stretch, .mp-links.stretch > ul { height:100%; } .mp-links.side-image li { flex-flow:row nowrap; } .mp-links.plain > ul > li { outline-color:transparent; } /* MP icon lists */ .mp-iconlists { display: flex; flex-flow: wrap; gap: 5px 20px; } .mp-iconlists > .mp-iconlist { flex: 1; min-width: fit-content; } .mp-iconlist > h3 { padding: 0; margin: 0; } .mp-iconlist > ul { list-style: none; margin: 0; } /* MP gallery */ .mp-box ul.gallery.gallery.gallery { /* this selector looks ridiculous but is actually part of stock Vector and therefore a necessary override */ display: flex; flex-flow: wrap; gap: 5px 10px; align-items: flex-end; justify-content: space-evenly; margin: auto; } .mp-box ul.gallery .gallerytext { margin-top: 1em; padding: 0; background-color: var(--wiki-content-background-color--secondary); border: 1px solid var(--wiki-content-link-color); } .mp-box .gallerybox:hover .gallerytext { background-color: var(--wiki-content-link-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-link-color) 20%, transparent); } .mp-box ul.gallery .gallerytext > p { margin: 0; } .mp-box ul.gallery .gallerytext a { display: block; padding: .5em 0; } /*********************** * End main page layout * ************************/ /****************************************/ /******* Start DRUID CSS rules *********/ /****************************************/ .druid-container { /* These variables are designed to inherit from your wiki's color variables. If your wiki uses a different naming scheme, change the inner names to match yours. If your wiki doesn't use color variables you should consider doing so, otherwise you can replace the inner variables or the fallback values with colors that match your wiki. */ --druid-background-color: var(--wiki-content-background-color, #ffffff); --druid-secondary-background-color: var(--wiki-accent-color, #36c); --druid-secondary-background-label-color: var(--wiki-accent-label-color, #fff); --druid-tertiary-background-color: var(--wiki-content-background-color--secondary, #eaecf0); --druid-border-color: var(--wiki-content-border-color, #a7d7f9); --druid-link-color: var(--wiki-content-link-color, #0645ad); --druid-link-label-color: var(--wiki-content-link-label-color, #fff); } /* --------------------------------- */ /* Safe to edit ABOVE this line */ /* --------------------------------- */ /* --------------------------------- */ /* Do not edit below this line */ /* --------------------------------- */ .druid-container { border: 4px solid var(--druid-border-color); border-radius: 3px; background: var(--druid-background-color); float: right; clear: right; margin: 0 0 1em 1em; width:100%; max-width:22em; box-sizing: border-box; border-collapse: collapse; } @media screen and (max-width: 720px) { .druid-container { float: none; margin: 0.5rem auto; } } .druid-main-images-file, .druid-main-image { text-align:center; } .druid-infobox .druid-title, .druid-infobox .druid-section { background:var(--druid-secondary-background-color); /* fallback */ background:color-mix(in srgb, var(--druid-secondary-background-color) 75%, transparent); color:var(--druid-secondary-background-label-color); text-align:center; font-size:1.5em; padding:1px; } .druid-infobox .druid-section { font-size: 1.25em; font-weight: 500; } .druid-infobox .druid-collapsible .druid-section { flex-grow: 1; } .druid-label { font-weight:bold; text-align: right; box-sizing: border-box; } .druid-row > .druid-label { width: 48%; flex-shrink: 0; } .druid-row > .druid-label, .druid-row > .druid-data { padding-inline: 0.3em; } .druid-main-image, .druid-main-images { padding:5px; } .druid-main-image img, .druid-main-images img { max-width:100%; height:auto; } .druid-main-images-labels { display:flex; flex-direction:row; flex-wrap:wrap; justify-content: space-evenly; margin:0.25em; gap:0.25em; } .druid-main-images-label { cursor:pointer; flex:1 1 auto; text-align:center; transition:.1s ease-in; outline:1px solid var(--druid-link-color); } .druid-main-images-label.focused { background:var(--druid-link-color); color:var(--druid-link-label-color); } .druid-main-images-label:not(.focused):hover { background:var(--druid-link-color); /* fallback */ background:color-mix(in srgb, var(--druid-link-color) 25%, transparent); } .druid-toggleable-data:not(.focused), .druid-main-images-file:not(.focused), .druid-toggleable-heading:not(.focused) { display:none; } .druid-row:not(:has(.druid-grid)):has(.druid-toggleable-data-empty.focused) { display:none; } .druid-section:has(.druid-toggleable-heading-empty.focused) { display:none; } .druid-grid { display:grid; gap: 0.3em; padding: 0.35em; } .druid-grid-item { background:var(--druid-tertiary-background-color); padding:0.25em; border:1px solid var(--druid-border-color); /* fallback */ border:1px solid color-mix(in srgb, var(--druid-border-color) 50%, transparent); border-radius: 2px; } .druid-grid-item .druid-label, .druid-grid-item .druid-data { text-align: center; } .druid-data-wide { width:100%; } .druid-section-container > .druid-collapsible { display: flex; justify-content: space-between; align-items: center; } .druid-collapsed { display:none!important; } .druid-collapsible { cursor:pointer; position:relative; } .druid-collapsible::after { content: ""; display: block; position: absolute; right: 10px; width: 20px; height: 20px; --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3E collapse %3C/title%3E%3Cpath d='M1 13.75l1.5 1.5 7.5-7.5 7.5 7.5 1.5-1.5-9-9-9 9z'/%3E%3C/svg%3E") no-repeat; -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-position: center center; mask-position: center center; background-color: var(--druid-secondary-background-label-color); } .druid-collapsible-collapsed::after { transform: rotate(180deg); } .druid-section-container:has(.druid-toggleable-data-empty.focused):not(:has(.druid-toggleable-data-nonempty.focused)):not(:has(.druid-data-nonempty)) { display: none; } /***************************************** Div support *****************************************/ div.druid-row { display:flex; margin-block: 1px; } div.druid-row + div.druid-row { margin-top: 0; } div.druid-row > .druid-label { background: var(--druid-tertiary-background-color); } .druid-infobox .druid-title { font-weight: 700; } .druid-infobox #toc { display:none; } /******** Custom display classes *********/ div.druid-stacked.druid-row, .druid-stacked div.druid-row { flex-direction: column; } .druid-stacked.druid-row > .druid-label, .druid-stacked .druid-row > .druid-label { text-align: left; width: 100%; flex-basis:unset; } .druid-stacked.druid-row > .druid-data, .druid-stacked .druid-row > .druid-data { padding-left: .75em; } /* --------------------------------- */ /* Do not edit above this line */ /* --------------------------------- */ /* --------------------------------- */ /* Local overrides go below this line */ /* --------------------------------- */ /****************************************/ /******* End DRUID CSS rules *********/ /****************************************/ /*** Miscellaneous ***/ .responsive-image { max-width:100%; height:auto; } .view-dark .invert-on-dark, .view-light .invert-on-light { filter:invert(100%); } .pixelated { image-rendering:pixelated; } @media screen and (min-width:720px) { .mobileonly { display:none; } } @media screen and (max-width:720px) { .nomobile { display:none; } } /*** Utility classes for standard MW galleries ***/ /* it's important that spaced comes before centered in the sheet */ .gallery.gallery.gallery.spaced { /* this selector looks ridiculous but is actually part of stock Vector and therefore a necessary override */ display:flex; flex-flow:row wrap; justify-content:space-evenly; margin-left:unset; } .gallery.centered { text-align:center; } /************************** * Start Modular Templates * **************************/ /********* [[Template:Ambox]] *********/ .ambox { --ambox-color:var(--wiki-accent-color); border: 1px solid var(--wiki-content-border-color); border-left: 10px solid var(--ambox-color); border-radius: 2px; display: flex; align-items: center; gap: .6em; margin: 1em 0; padding: 3px .6em; background-color: var(--wiki-content-background-color--secondary); box-shadow: 2px 2px 5px 0px #0002; } @media (min-width: 720px) { .ambox { margin-inline: 10%; } } .ambox.tiny { padding: .04rem .5em; margin-inline: 0; width: fit-content; } .ambox + .ambox { margin-top: -.6em; } .ambox-content p { margin: .15em 0; } .ambox-title { font-weight: bold; } /********* [[Template:Hatnote]] *********/ .hatnote { padding: 1px 0 1px 1.6em; margin-bottom: 0.5em; font-style: italic; border-top: 1px solid var(--wiki-content-border-color--secondary); border-bottom: 1px solid var(--wiki-content-border-color--secondary); } .hatnote.icon { padding-left: 0; } /********* [[Template:Spoiler]] *********/ .spoiler-content { background-color: var(--wiki-content-dynamic-color); /* fallback */ background-color: color-mix(in srgb, var(--wiki-content-dynamic-color) 50%, transparent); transition: all 0.3s; cursor: pointer; overflow:auto; } .spoiler-content > * { pointer-events:none; opacity: 0; transition: all 0.3s; } .spoiler-content.show { background-color: transparent; } .spoiler-content.show > * { pointer-events:unset; opacity: 1; } /********* [[Template:Link icon]] *********/ .link-icon { --link-icon-line-height: 1.5em; --link-icon-size: 1.5em; display: inline-flex; align-items: center; height: var(--link-icon-line-height); vertical-align: bottom; } .link-icon .regular { align-self: center; } .link-icon .regular a { display: flex; } .link-icon .regular img { height: var(--link-icon-size); max-width: var(--link-icon-size); } .link-icon .fallback { outline: 1px solid var(--wiki-content-text-color); border-radius: 50%; text-align: center; width: var(--link-icon-size); line-height: var(--link-icon-size); } .link-icon.notext .fallback { display: inline-block; } .link-icon.notext { display: inline; } /********* [[Template:Quote]] *********/ .quote { background: var(--wiki-content-background-color--secondary); border-radius: 5px; border: 2px solid var(--wiki-content-border-color); margin: .5em 0; padding: .5em; overflow-y: hidden; } .quote .block { display: block; } .quote .title { font-size: large; font-weight: bold; } .quote .content { font-style: italic; } .quote .author { font-weight: bold; text-align: end; } .quote .marks-wrapper { display: flex; gap: 5px; } .quote .marks-wrapper::before, .quote .marks-wrapper::after { font-size: 100px; line-height: 0px; } .quote .marks-wrapper::before { content: "\201C"; margin-top: 40px; } .quote .marks-wrapper::after { content: "\201D"; align-self: end; margin-bottom: -10px; } .client-js .mw-charinsert-item { display:none; } /************************ * End Modular Templates * *************************/ /***************************** * Used by [[Template:Color]] * ******************************/ .color__splotch { display:inline-block; height:1em; width:1em; box-sizing:border-box; vertical-align:text-top; border-radius:50%; border:1px solid var(--wiki-content-text-color); } /********************* * End Template:Color * **********************/ /* Navi Grid Stuff */ .navi-grid { display: flex; flex-wrap: wrap; /* Allows items to wrap to the next row */ gap: 30px; /* Space between items */ justify-content: center; /* Center-align the grid */ margin: 20px 0; /* Add vertical spacing */ } .navi-item { position: relative; text-align: center; width: 200px; padding: 10px; background-color: #1d1e1e; border: 2px solid #ddd; border-radius: 8px; transition: transform 0.2s, box-shadow 0.2s, background-color 0.2s; overflow: hidden; } .navi-item a::after { content: ""; position: absolute; inset: 0; } .navi-item:hover { transform: scale(1.05); /* Slight zoom-in effect on hover */ background-color: #323434; /* Change background on hover */ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Add shadow on hover */ } /* Add padding to the image to expand the clickable area */ .navi-item img { width: calc(100% - 20px); /* Adjust width to fit within the box */ height: auto; /* Maintain aspect ratio */ padding: 10px; /* Expand clickable area */ object-fit: cover; /* Ensures the image fits perfectly */ display: block; /* Removes extra inline spacing */ } .navi-name { font-size: 1.1em; /* Font size for the name */ margin-top: 10px; /* Space between the image and the text */ font-weight: bold; /* Bold text */ text-align: center; color: #fff; /* Text color */ word-wrap: break-word; /* Handles long names */ } /* Skills */ .navi-item:has(img[alt="Skills"]) { border-color: #A600D3; } .navi-item:has(img[alt="Skills"]) .navi-name a { color: #A600D3; } /* Magics */ .navi-item:has(img[alt="Magics"]) { border-color: #398BC2; } .navi-item:has(img[alt="Magics"]) .navi-name a { color: #398BC2; } /* Battlewills */ .navi-item:has(img[alt="Battlewills"]) { border-color: #FFA500; } .navi-item:has(img[alt="Battlewills"]) .navi-name a { color: #FFA500; } .navi-item:has(img[alt="Spiritual Magic"]) { border-color: #7349B3; } .navi-item:has(img[alt="Spiritual Magic"]) .navi-name a { color: #7349B3; } .navi-item:has(img[alt="Summoning Magic"]) { border-color: #3B62BB; } .navi-item:has(img[alt="Summoning Magic"]) .navi-name a { color: #3B62BB; } /* Resistances */ .navi-item:has(img[alt="Resistances"]) { border-color: #00a8a8; } .navi-item:has(img[alt="Resistances"]) .navi-name a { color: #00a8a8; } /* Intrinsic Skills */ .navi-item:has(img[alt="Intrinsic Skills"]) { border-color: #54fcfc; } .navi-item:has(img[alt="Intrinsic Skills"]) .navi-name a { color: #54fcfc; } /* Common Skills */ .navi-item:has(img[alt="Common Skills"]) { border-color: #54fc54; } .navi-item:has(img[alt="Common Skills"]) .navi-name a { color: #54fc54; } /* Extra Skills */ .navi-item:has(img[alt="Extra Skills"]) { border-color: #fcfc54; } .navi-item:has(img[alt="Extra Skills"]) .navi-name a { color: #fcfc54; } /* Unique Skills */ .navi-item:has(img[alt="Unique Skills"]) { border-color: #fca800; } .navi-item:has(img[alt="Unique Skills"]) .navi-name a { color: #fca800; } /* Ultimate Skills */ .navi-item:has(img[alt="Ultimate Skills"]) { border-color: #fc5454; } .navi-item:has(img[alt="Ultimate Skills"]) .navi-name a { color: #fc5454; } .animated > * { display: none; } .animated > .animated-active { display: block; } .animated-subframe > * { display: none; } .animated-subframe > .animated-active { display: block; } /* End of Navi Grid */ /** as of Module:navbox version 1.2.2 **/ /********************************************************************************************************************* * Semantically-correct horizontal lists (for Module:Navbox, and they're more machine-readable than {{*}}-formatting) * **********************************************************************************************************************/ .hlist dl, .hlist ol, .hlist ul { margin: 0; padding: 0; } /* Display list items inline */ .hlist dd, .hlist dt, .hlist li { /* * don't trust the note that says margin doesn't work with inline * removing margin: 0 makes dds have margins again * We also want to reset margin-right in Minerva */ margin: 0; display: inline; } /* Display requested top-level lists inline */ .hlist.inline, .hlist.inline dl, .hlist.inline ol, .hlist.inline ul, /* Display nested lists inline */ .hlist dl dl, .hlist dl ol, .hlist dl ul, .hlist ol dl, .hlist ol ol, .hlist ol ul, .hlist ul dl, .hlist ul ol, .hlist ul ul { display: inline; } /* Hide empty list items */ .hlist .mw-empty-li { display: none; } /* TODO: :not() can maybe be used here to remove the later rule. naive test * seems to work. more testing needed. like so: */ .hlist dt:not(:last-child)::after { content: ":\20"; } .hlist dd:not(:last-child)::after, .hlist li:not(:last-child)::after { /* "space, Middle Dot, space" We use unicode numbers instead of the raw characters due to a Firefox encoding bug on unicode characters. The space is also encoded because raw spaces combined with a unicode number strips the spaces under some conditions such as single-line lists */ /* content: "\20\00B7\20"; font-weight: bold; */ /* "space &nbsp; β€’ &nbsp; space" There may (and likely) be an extra whitespace between <li>s, therefore we have to use a space character as last character of this sequence. By this way, the last space and the next whitespce will collapse as a single space, to make the whitespace on both sides of the middle dot the same width. */ content: "\20\A0\2022\A0\20"; font-weight: inherit; } /* Add parentheses around nested lists */ .hlist dd ol::before, .hlist dd ul::before, .hlist dd dl::before, .hlist dt ol::before, .hlist dt ul::before, .hlist dt dl::before, .hlist li ol::before, .hlist li ul::before, .hlist li dl::before { content: "\20("; font-weight: inherit; } .hlist dd ol::after, .hlist dd ul::after, .hlist dd dl::after, .hlist dt ol::after, .hlist dt ul::after, .hlist dt dl::after, .hlist li ol::after, .hlist li ul::after, .hlist li dl::after { content: ")"; font-weight: inherit; } /* Put ordinals in front of ordered list items */ .hlist ol { counter-reset: listitem; } .hlist ol > li { counter-increment: listitem; } .hlist ol > li::before { content: " " counter(listitem) ".\20"; } /* Progressive enhancement: * try to make the dot always follow the list item in same line */ .hlist :is(li,dt,dd):not(:has(:is(li,dt,dd))){ display: inline-block; } /******************************************** * End semantically-correct horizontal lists * *********************************************/ /********************************************************** * Template:Navbox (RANGER) (needs semantic horizontal lists above) * ***********************************************************/ .ranger-navbox{ --navbox-background: none; /* for entire navbox */ --navbox-margin: 0.5em auto; --navbox-padding: 4px; --navbox-gap: 3px; /* when using zero-value, it must be 0px */ --navbox-outer-border-color: var(--wiki-content-border-color--accent); --navbox-outer-border-width: 1px; --navbox-outer-border-style: solid; --navbox-outer-border-radius: 0px; --navbox-font-size: calc(1em - 2px); --navbox-title-color: var(--wiki-accent-label-color); --navbox-title-font-size: calc(125%); --navbox-title-background: var(--wiki-accent-color); --navbox-title-icon-color: var(--wiki-accent-label-color); --navbox-title-link-color: var(--navbox-title-color); --navbox-title-link-color--visited: var(--navbox-title-link-color); --navbox-title-link-color--hover: var(--wiki-accent-link-color); --navbox-title-redlink-color: var(--navbox-title-link-color); --navbox-title-link-decoration: underline solid; --navbox-title-redlink-decoration: underline wavy; --navbox-title-padding--y: 0.5em; --navbox-above-background: color-mix(in srgb, var(--wiki-content-text-color) 15%, transparent); --navbox-above-color: var(--wiki-content-text-color); --navbox-above-padding: var(--navbox-list-padding); --navbox-below-background: var(--navbox-above-background); --navbox-below-color: var(--navbox-above-color); --navbox-below-padding: var(--navbox-above-padding); --navbox-header-color: var(--navbox-title-color); --navbox-header-font-size: calc(110%); --navbox-header-background: var(--navbox-title-background); --navbox-header-icon-color: var(--navbox-title-icon-color); --navbox-header-link-color: var(--navbox-title-link-color); --navbox-header-link-color--visited: var(--navbox-title-link-color--visited); --navbox-header-link-color--hover: var(--navbox-title-link-color--hover); --navbox-header-redlink-color: var(--navbox-title-redlink-color); --navbox-header-link-decoration: var(--navbox-title-link-decoration); --navbox-header-redlink-decoration: var(--navbox-title-redlink-decoration); --navbox-header-padding--y: 0.3em; --navbox-subheader-font-size: calc(100%); --navbox-subheader-padding--y: calc(var(--navbox-header-padding--y)/2); --navbox-list-background: color-mix(in srgb, var(--wiki-content-text-color) 5%, transparent); --navbox-list-background--striped: color-mix(in srgb, var(--wiki-content-text-color) 8%, transparent); --navbox-list-color: var(--wiki-content-text-color); --navbox-list-padding: 0.25em 0.5em; /* --navbox-group-* also apply to .ranger-subgroup */ --navbox-group-text-align: left; --navbox-group-text-align--mobile: left; /* only for mobile view */ --navbox-group-background: color-mix(in srgb, var(--wiki-accent-color) 20%, transparent); --navbox-group-color: var(--wiki-content-text-color); --navbox-group-padding: var(--navbox-list-padding); --navbox-tree-line-color: color-mix(in srgb, var(--wiki-accent-color) 30%, transparent); --navbox-tree-line-width: 2px; --navbox-tree-indent: 1em; --navbox-tree-line-indent: 0.5em; --navbox-tree-line-spacing: var(--navbox-gap); --icon-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-chevron-down' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M6 9l6 6l6 -6'%3E%3C/path%3E%3C/svg%3E"); --icon-metalinks: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-edit' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1'%3E%3C/path%3E%3Cpath d='M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z'%3E%3C/path%3E%3Cpath d='M16 5l3 3'%3E%3C/path%3E%3C/svg%3E"); --navbox-icon-offset--x: 0.5rem; /* should be an absolute length (rem-based or px-based) */ } .ranger-navbox.pill, .ranger-navbox.pill-mobile{ /** vars for the "pill" style only (`.pill` and ".pill-mobile" clases) **/ --navbox-pill-gap: 0.3em; --navbox-pill-padding: 0.25em 0.75em; --navbox-pill-border-radius: 3px; --navbox-pill-box-shadow: none; --navbox-pill-background: color-mix(in srgb, var(--wiki-content-text-color) 5%, transparent); --navbox-pill-box-shadow--hover: inset 0 0 3px var(--navbox-list-color); --navbox-pill-background--hover: var(--navbox-pill-background); /* remove list cell background */ --navbox-list-background: none; --navbox-list-background--striped: color-mix(in srgb, var(--wiki-content-text-color) 3%, transparent); } .ranger-navbox.no-underline-title-links{ --navbox-title-link-color: var(--wiki-accent-link-color); --navbox-title-link-decoration: none; --navbox-title-redlink-decoration: none; } .ranger-navbox.noborder, .ranger-navbox.no-border{ --navbox-padding: 0px; --navbox-outer-border-width: 0px; } /****************************** * Fallback for older browsers * *******************************/ @supports not (color:color-mix(in srgb, #000, transparent)) { .ranger-navbox { --navbox-above-background: var(--wiki-content-background-color--secondary); --navbox-list-background: transparent; --navbox-list-background--striped: var(--wiki-content-background-color--secondary); --navbox-group-background: var(--wiki-content-background-color--secondary); --navbox-tree-line-color:var(--wiki-content-background-color--secondary); } .ranger-navbox.pill, .ranger-navbox.pill-mobile { --navbox-pill-background: var(--wiki-content-background-color--secondary); --navbox-list-background--striped: transparent; } } /*************** * End fallback * ****************/ .ranger-navbox{ border-color: var(--navbox-outer-border-color); border-style: var(--navbox-outer-border-style); border-width: var(--navbox-outer-border-width); border-radius: var(--navbox-outer-border-radius); padding: var(--navbox-padding); font-size: var(--navbox-font-size); margin: var(--navbox-margin); background: var(--navbox-background); line-height: 1.5; clear:both; } .ranger-navbox * { border: 0; } .ranger-navbox .center *{ margin-left: unset; margin-right: unset; } .ranger-navbox, .ranger-navbox .ranger-section, .ranger-navbox .ranger-listbox{ display: flex; flex-direction: column; gap: var(--navbox-gap); } .ranger-navbox .ranger-title, .ranger-navbox .ranger-header{ text-align: center; min-height: 1.5em; position: relative; z-index: 0; font-weight: bold; } .ranger-navbox .ranger-title{ color: var(--navbox-title-color); background: var(--navbox-title-background); font-size: var(--navbox-title-font-size); padding: var(--navbox-title-padding--y) calc(1.5em + var(--navbox-icon-offset--x)); /* left and right padding equal to the size and position of the edit/collapse buttons */ } .ranger-navbox .ranger-title a, .ranger-navbox .ranger-title a:visited, .ranger-navbox .ranger-title a:hover, .ranger-navbox .ranger-title a.external, .ranger-navbox .ranger-title a.external:visited, .ranger-navbox .ranger-title a.external:hover { text-decoration: var(--navbox-title-link-decoration); } .ranger-navbox .ranger-title a.new, .ranger-navbox .ranger-title a.new:visited { text-decoration: var(--navbox-title-redlink-decoration); } .ranger-navbox .ranger-title a, .ranger-navbox .ranger-title a.external, .ranger-navbox .ranger-title a.external:visited { color: var(--navbox-title-link-color); } .ranger-navbox .ranger-title a:visited{ color: var(--navbox-title-link-color--visited); } .ranger-navbox .ranger-title a.new, .ranger-navbox .ranger-title a.new:visited{ color:var(--navbox-title-redlink-color); } .ranger-navbox .ranger-title a:hover, .ranger-navbox .ranger-title a:visited:hover, .ranger-navbox .ranger-title a.external:hover, .ranger-navbox .ranger-title a.external:visited:hover { color:var(--navbox-title-link-color--hover); } .ranger-navbox .ranger-header{ color: var(--navbox-header-color); background: var(--navbox-header-background); font-size: var(--navbox-header-font-size); padding: var(--navbox-header-padding--y) calc(1.5em + var(--navbox-icon-offset--x)); /* left and right padding equal to the size and position of the edit/collapse buttons */ } .ranger-navbox .ranger-sublist .ranger-header{ font-size: var(--navbox-subheader-font-size); padding: var(--navbox-subheader-padding--y) calc(1.5em + var(--navbox-icon-offset--x)); /* left and right padding equal to the size and position of the edit/collapse buttons */ } .ranger-navbox .ranger-header a, .ranger-navbox .ranger-header a:visited, .ranger-navbox .ranger-header a:hover, .ranger-navbox .ranger-header a.external, .ranger-navbox .ranger-header a.external:visited, .ranger-navbox .ranger-header a.external:hover { text-decoration: var(--navbox-header-link-decoration); } .ranger-navbox .ranger-header a.new, .ranger-navbox .ranger-header a.new:visited { text-decoration: var(--navbox-header-redlink-decoration); } .ranger-navbox .ranger-header a, .ranger-navbox .ranger-header a.external, .ranger-navbox .ranger-header a.external:visited { color: var(--navbox-header-link-color); } .ranger-navbox .ranger-header a:visited{ color: var(--navbox-header-link-color--visited); } .ranger-navbox .ranger-header a.new, .ranger-navbox .ranger-header a.new:visited{ color:var(--navbox-header-redlink-color); } .ranger-navbox .ranger-header a:hover, .ranger-navbox .ranger-header a:visited:hover, .ranger-navbox .ranger-header a.external:hover, .ranger-navbox .ranger-header a.external:visited:hover { color:var(--navbox-header-link-color--hover); } .ranger-navbox .ranger-meta{ font-size: var(--navbox-title-font-size); position: absolute; left: var(--navbox-icon-offset--x); top: calc(var(--navbox-title-padding--y) + 0.08em); /* 0.08em: vertial offset tweak based on the icon graph */ display: block; } .ranger-navbox .ranger-meta .nv{ --mask: var(--icon-metalinks); display: block; width: 0.84em; /* based on the icon graph */ height: 0.84em; -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-position: center center; mask-position: center center; background-color: var(--navbox-title-icon-color); } .ranger-navbox .ranger-meta .nv > a{ display: block; width: 100%; height: 100%; opacity: 0; } .ranger-navbox .ranger-meta .nv > a > span{ display: block; width: 100%; height: 100%; overflow: hidden; } .ranger-navbox .ranger-meta:has(.mw-selflink){ display: none; } .ranger-navbox, .ranger-navbox .ranger-section{ position: relative; } .ranger .mw-collapsible-toggle-placeholder{ display: none; } .ranger-navbox .ranger-title > .ranger-title-text, .ranger-navbox .ranger-header > .ranger-header-text{ pointer-events: none; } .ranger-navbox .ranger-title > .ranger-title-text a, .ranger-navbox .ranger-header > .ranger-header-text a{ pointer-events: auto; } .ranger-navbox .ranger-title > .mw-collapsible-toggle, .ranger-navbox .ranger-header > .mw-collapsible-toggle{ --mask: var(--icon-chevron-down); position: absolute; right: 0; top: 0; z-index: -1; display: block; width: 100%; height: 100%; overflow:hidden; } .ranger-navbox.small-collapsible-toggle-click-area .ranger-title > .mw-collapsible-toggle, .ranger-navbox.small-collapsible-toggle-click-area .ranger-header > .mw-collapsible-toggle{ width: 1.5em; height: 1.5em; right: var(--navbox-icon-offset--x); } .ranger-navbox.small-collapsible-toggle-click-area .ranger-title > .mw-collapsible-toggle{ top: var(--navbox-title-padding--y); } .ranger-navbox.small-collapsible-toggle-click-area .ranger-header > .mw-collapsible-toggle{ top: var(--navbox-header-padding--y); } .ranger-navbox.small-collapsible-toggle-click-area .ranger-sublist .ranger-header > .mw-collapsible-toggle{ top: var(--navbox-subheader-padding--y); } .ranger-navbox .ranger-title > .mw-collapsible-toggle::before, .ranger-navbox .ranger-header > .mw-collapsible-toggle::before{ content: ""; display: block; width: 1.5em; height: 1.5em; position: absolute; right: var(--navbox-icon-offset--x); -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-position: center center; mask-position: center center; background-color: var(--navbox-title-icon-color); transform: scaleY(-1); } .ranger-navbox .ranger-title > .mw-collapsible-toggle::before{ top: var(--navbox-title-padding--y); } .ranger-navbox .ranger-header > .mw-collapsible-toggle::before{ top: var(--navbox-header-padding--y); } .ranger-navbox .ranger-sublist .ranger-header > .mw-collapsible-toggle::before{ top: var(--navbox-subheader-padding--y); } .ranger-navbox.small-collapsible-toggle-click-area .ranger-title > .mw-collapsible-toggle::before, .ranger-navbox.small-collapsible-toggle-click-area .ranger-header > .mw-collapsible-toggle::before{ top: 0; right: 0; } .ranger-navbox .ranger-header > .mw-collapsible-toggle::before{ background-color: var(--navbox-header-icon-color); } .ranger-navbox .ranger-title > .mw-collapsible-toggle.mw-collapsible-toggle-collapsed::before, .ranger-navbox .ranger-header > .mw-collapsible-toggle.mw-collapsible-toggle-collapsed::before{ transform: none; } .ranger-navbox .ranger-title > .mw-collapsible-toggle *, .ranger-navbox .ranger-title > .mw-collapsible-toggle::after, .ranger-navbox .ranger-header > .mw-collapsible-toggle *, .ranger-navbox .ranger-header > .mw-collapsible-toggle::after{ display: none; } .ranger-navbox .ranger-list{ width: unset; padding: var(--navbox-list-padding); } .ranger-navbox .ranger-above{ background: var(--navbox-above-background); color: var(--navbox-above-color); padding: var(--navbox-above-padding); width: unset; } .ranger-navbox .ranger-below{ background: var(--navbox-below-background); color: var(--navbox-below-color); padding: var(--navbox-below-padding); width: unset; } .ranger-navbox .ranger-sublist{ display: flex; flex-direction: column; gap: var(--navbox-gap); } .ranger-navbox .ranger-section-body{ display: grid; gap: var(--navbox-gap); grid-template-columns: auto minmax(0,1fr); } .ranger-navbox .ranger-row{ display: contents; } .ranger-navbox .ranger-group, .ranger-navbox .ranger-subgroup{ text-align: var(--navbox-group-text-align); white-space: nowrap; font-weight: bold; background: var(--navbox-group-background); color: var(--navbox-group-color); padding: var(--navbox-group-padding); width: unset; } /* for desktop view */ .ranger-navbox.group-align-left .ranger-group, .ranger-navbox.group-align-left .ranger-subgroup{ --navbox-group-text-align: left; } .ranger-navbox.group-align-center .ranger-group, .ranger-navbox.group-align-center .ranger-subgroup{ --navbox-group-text-align: center; } .ranger-navbox.group-align-right .ranger-group, .ranger-navbox.group-align-right .ranger-subgroup{ --navbox-group-text-align: right; } /* for mobile view */ .ranger-navbox.mobile-group-align-left .ranger-group, .ranger-navbox.mobile-group-align-left .ranger-subgroup{ --navbox-group-text-align--mobile: left; } .ranger-navbox.mobile-group-align-center .ranger-group, .ranger-navbox.mobile-group-align-center .ranger-subgroup{ --navbox-group-text-align--mobile: center; } .ranger-navbox.mobile-group-align-right .ranger-group, .ranger-navbox.mobile-group-align-right .ranger-subgroup{ --navbox-group-text-align--mobile: right; } .ranger-navbox .ranger-listbox > .ranger-wrap{ background: var(--navbox-list-background); color: var(--navbox-list-color); flex-grow: 1; } .ranger-navbox .ranger-sublist{ flex-grow: var(--count); } .ranger-navbox .ranger-listbox:first-child{ /* A list-n without group-n */ grid-column-end: span 2; } .ranger-navbox .ranger-group, .ranger-navbox .ranger-subgroup, .ranger-navbox .ranger-listbox > .ranger-wrap{ display: grid; justify-items: stretch; align-items: center; } .ranger-navbox.striped-even .ranger-even, .ranger-navbox.striped-odd .ranger-odd{ background: var(--navbox-list-background--striped); } /* make links use full line height (larger click box)*/ .ranger-navbox .hlist a{ display: inline-block; } .ranger-navbox .align-left, .ranger-navbox .alignleft{ text-align: left; } .ranger-navbox .align-center, .ranger-navbox .aligncenter{ text-align: center; } .ranger-navbox .align-right, .ranger-navbox .alignright{ text-align: right; } /* responsive */ @media screen and (max-width: 720px) { .ranger-navbox .ranger-section-body, .ranger-navbox .ranger-sublist { display: flex; flex-flow: column; } .ranger-navbox .ranger-row{ display: block; } .ranger-navbox .ranger-group + .ranger-listbox > .ranger-sublist:first-child, .ranger-navbox .ranger-subgroup + .ranger-listbox > .ranger-sublist:first-child{ margin-top: var(--navbox-gap); } .ranger-navbox .ranger-listbox.empty{ display: none; } .ranger-navbox .ranger-group, .ranger-navbox .ranger-subgroup{ text-align: var(--navbox-group-text-align--mobile); white-space: normal; } .ranger-navbox .ranger-sublist { padding-left: var(--navbox-tree-indent); margin-left: var(--navbox-tree-line-indent); } .ranger-navbox .ranger-subgroup, .ranger-navbox .ranger-listbox { position:relative; } .ranger-navbox .ranger-group br, .ranger-navbox .ranger-subgroup br{ display: none; } .ranger-navbox .ranger-sublist > .ranger-section > .ranger-header{ margin-left: calc( 0px - var(--navbox-tree-indent) - var(--navbox-tree-line-indent)); } .ranger-navbox .ranger-sublist .ranger-row > ::before{ position: absolute; left: calc(0px - var(--navbox-tree-indent)); top: 0; width: var(--navbox-tree-line-width); height: 100%; content: ''; display: block; background-color: var(--navbox-tree-line-color); } .ranger-navbox .ranger-sublist .ranger-row > .ranger-listbox::before, .ranger-navbox .ranger-row.empty-list > .ranger-subgroup::before{ height: calc(100% + var(--navbox-gap)); } .ranger-navbox .ranger-sublist .ranger-row:last-child > ::before { display: none; } .ranger-navbox .ranger-sublist .ranger-row:last-child > :first-child::before { display: block; height: calc(50% + var(--navbox-tree-line-width)/2); } .ranger-navbox .ranger-subgroup::after, .ranger-navbox .empty-group > .ranger-listbox > .ranger-wrap::after{ position: absolute; left: calc(0px - var(--navbox-tree-indent) + var(--navbox-tree-line-width)); width: calc(var(--navbox-tree-indent) - var(--navbox-tree-line-spacing) - var(--navbox-tree-line-width)); height: var(--navbox-tree-line-width); content: ''; background-color: var(--navbox-tree-line-color); } /* increase height for links */ .ranger-navbox .hlist{ line-height: 2; } } /**** `.pill` class: the "pill" style ****/ /* remove middle dots betweem items */ .ranger-navbox.pill .hlist dd:not(:last-child)::after, .ranger-navbox.pill .hlist li:not(:last-child)::after{ display: none; } /* remove parentheses around nested lists*/ .ranger-navbox.pill .hlist dd ol::before, .ranger-navbox.pill .hlist dd ul::before, .ranger-navbox.pill .hlist dd dl::before, .ranger-navbox.pill .hlist dt ol::before, .ranger-navbox.pill .hlist dt ul::before, .ranger-navbox.pill .hlist dt dl::before, .ranger-navbox.pill .hlist li ol::before, .ranger-navbox.pill .hlist li ul::before, .ranger-navbox.pill .hlist li dl::before, .ranger-navbox.pill .hlist dd ol::after, .ranger-navbox.pill .hlist dd ul::after, .ranger-navbox.pill .hlist dd dl::after, .ranger-navbox.pill .hlist dt ol::after, .ranger-navbox.pill .hlist dt ul::after, .ranger-navbox.pill .hlist dt dl::after, .ranger-navbox.pill .hlist li ol::after, .ranger-navbox.pill .hlist li ul::after, .ranger-navbox.pill .hlist li dl::after { display: none; } /* make lists inline-flex */ .ranger-navbox.pill .hlist ul, .ranger-navbox.pill .hlist ol, .ranger-navbox.pill .hlist dl{ display: inline-flex; gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* "pill" style for items */ .ranger-navbox.pill .hlist li, .ranger-navbox.pill .hlist dt, .ranger-navbox.pill .hlist dd{ padding: var(--navbox-pill-padding); border-radius: var(--navbox-pill-border-radius); box-shadow: var(--navbox-pill-box-shadow); background: var(--navbox-pill-background); /* 100% height */ display: flex; align-items: center; /* for nested lists */ gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* Add a hover / focus feedback style */ .ranger-navbox.pill .hlist dd:hover, .ranger-navbox.pill .hlist dd:focus, .ranger-navbox.pill .hlist dt:hover, .ranger-navbox.pill .hlist dt:focus, .ranger-navbox.pill .hlist li:hover, .ranger-navbox.pill .hlist li:focus { box-shadow: var(--navbox-pill-box-shadow--hover); background: var(--navbox-pill-background--hover); } /**** `.pill-mobile` class: only apply the "pill" style on mobile ****/ @media screen and (max-width: 720px) { /* remove middle dots betweem items */ .ranger-navbox.pill-mobile .hlist dd:not(:last-child)::after, .ranger-navbox.pill-mobile .hlist li:not(:last-child)::after{ display: none; } /* remove parentheses around nested lists*/ .ranger-navbox.pill-mobile .hlist dd ol::before, .ranger-navbox.pill-mobile .hlist dd ul::before, .ranger-navbox.pill-mobile .hlist dd dl::before, .ranger-navbox.pill-mobile .hlist dt ol::before, .ranger-navbox.pill-mobile .hlist dt ul::before, .ranger-navbox.pill-mobile .hlist dt dl::before, .ranger-navbox.pill-mobile .hlist li ol::before, .ranger-navbox.pill-mobile .hlist li ul::before, .ranger-navbox.pill-mobile .hlist li dl::before, .ranger-navbox.pill-mobile .hlist dd ol::after, .ranger-navbox.pill-mobile .hlist dd ul::after, .ranger-navbox.pill-mobile .hlist dd dl::after, .ranger-navbox.pill-mobile .hlist dt ol::after, .ranger-navbox.pill-mobile .hlist dt ul::after, .ranger-navbox.pill-mobile .hlist dt dl::after, .ranger-navbox.pill-mobile .hlist li ol::after, .ranger-navbox.pill-mobile .hlist li ul::after, .ranger-navbox.pill-mobile .hlist li dl::after { display: none; } /* make lists inline-flex */ .ranger-navbox.pill-mobile .hlist ul, .ranger-navbox.pill-mobile .hlist ol, .ranger-navbox.pill-mobile .hlist dl{ display: inline-flex; gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* "pill" style for items */ .ranger-navbox.pill-mobile .hlist li, .ranger-navbox.pill-mobile .hlist dt, .ranger-navbox.pill-mobile .hlist dd{ /* 100% height */ display: flex; align-items: center; /* for nested lists */ gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* "pill" style for items */ .ranger-navbox.pill-mobile .hlist li, .ranger-navbox.pill-mobile .hlist dt, .ranger-navbox.pill-mobile .hlist dd{ padding: var(--navbox-pill-padding); border-radius: var(--navbox-pill-border-radius); box-shadow: var(--navbox-pill-box-shadow); background: var(--navbox-pill-background); /* 100% height */ display: flex; align-items: center; /* for nested lists */ gap: var(--navbox-pill-gap); flex-wrap: wrap; } /* Add a hover / focus feedback style */ .ranger-navbox.pill-mobile .hlist dd:hover, .ranger-navbox.pill-mobile .hlist dd:focus, .ranger-navbox.pill-mobile .hlist dt:hover, .ranger-navbox.pill-mobile .hlist dt:focus, .ranger-navbox.pill-mobile .hlist li:hover, .ranger-navbox.pill-mobile .hlist li:focus { box-shadow: var(--navbox-pill-box-shadow--hover); background: var(--navbox-pill-background--hover); } } /********************* * End Template:Navbox* **********************/ /* Collapsed Section @/ /* Default state: collapsed with arrow right (β–Ά) */ .collapsible-header::after { content: " β–Ά"; /* Arrow for collapsed */ color: #007acc; /* Default arrow color */ } /* Expanded state: arrow down (β–Ό) */ .collapsible-header.expanded::after { content: " β–Ό"; /* Arrow for expanded */ color: #ff5722; /* Color for expanded arrow */ } /* Collapsible content hidden by default */ .collapsible-content { display: none; margin-left: 20px; /* Optional indentation */ } /* Optional: Styling for the clickable header */ .collapsible-header { cursor: pointer; font-weight: bold; color: #007acc; /* Header text color */ } /* Optional: Hover effect for the header */ .collapsible-header:hover { color: #005999; /* Change color on hover */ } f5b76256d17214c74264668e32248e57a3075752 LoreHunter 0 309 353 2025-04-10T18:26:40Z UnluckyWarl0ck 588787 Created page with " {{DISPLAYTITLE:Lore Hunter}}{{DescriptionEcho|WIP}} [[Category:Unique Skills|Lore Hunter]] {{Skill |title=Compulsor |image=Compulsor.png |Type=Unique Skill |Obtain Cost=50K MP |Points to Master=1000 |Passive=True Β· Toggle Β· In-Slot |Next=[[Thoth|Thoth, Scribe of Eternity]] |Copying/Stealing= |Race= |Other=Reincarnation/Reroll }} == Usage == === Passive === *[Passive, Toggled] Adaptive Learning - When Lore hunter is toggled and mastered it gives a 25% dodge chance <..." wikitext text/x-wiki {{DISPLAYTITLE:Lore Hunter}}{{DescriptionEcho|WIP}} [[Category:Unique Skills|Lore Hunter]] {{Skill |title=Compulsor |image=Compulsor.png |Type=Unique Skill |Obtain Cost=50K MP |Points to Master=1000 |Passive=True Β· Toggle Β· In-Slot |Next=[[Thoth|Thoth, Scribe of Eternity]] |Copying/Stealing= |Race= |Other=Reincarnation/Reroll }} == Usage == === Passive === *[Passive, Toggled] Adaptive Learning - When Lore hunter is toggled and mastered it gives a 25% dodge chance <br> ===Active=== *[Active, Press] Grab Lore - Learns a piece of lore from the target entity. It applies Movement disruption for 10 seconds, and will learn a random skill from the target. The possible skill types are uniques, extras, commons, magics and battle wills. It will prioritize learning skills you do not know yet. This only works once per player and up to 5 times per entity type. This count is ticked even when you do not succeed in learning a skill. The skills do cost their MP to copy. ** When used while looking at a block and crouching it will give you a copy of that block. Skill Griefing being off does disable this, otherwise it follows molecular manipulation logic for dropping blocks *[Active, Press] Create lore - Place a random enchantment on the held item. The enchantment is max level but will be a enchantment that is applyable on said item. {{SkillsNavbox|state=collapsed}} 7c450b29113f39d70d8b4d68f4dc5c02a0a893dc 358 353 2025-04-10T18:36:23Z UnluckyWarl0ck 588787 wikitext text/x-wiki {{DISPLAYTITLE:Lore Hunter}}{{DescriptionEcho|WIP}} [[Category:Unique Skills|Lore Hunter]] {{Skill |title=Compulsor |image=Lore_Hunter.png |Type=Unique Skill |Obtain Cost=50K MP |Points to Master=1000 |Passive=True Β· Toggle Β· In-Slot |Next=[[Thoth|Thoth, Scribe of Eternity]] |Copying/Stealing= |Race= |Other=Reincarnation/Reroll }} == Usage == === Passive === *[Passive, Toggled] Adaptive Learning - When Lore hunter is toggled and mastered it gives a 25% dodge chance <br> ===Active=== *[Active, Press] Grab Lore - Learns a piece of lore from the target entity. It applies Movement disruption for 10 seconds, and will learn a random skill from the target. The possible skill types are uniques, extras, commons, magics and battle wills. It will prioritize learning skills you do not know yet. This only works once per player and up to 5 times per entity type. This count is ticked even when you do not succeed in learning a skill. The skills do cost their MP to copy. ** When used while looking at a block and crouching it will give you a copy of that block. Skill Griefing being off does disable this, otherwise it follows molecular manipulation logic for dropping blocks *[Active, Press] Create lore - Place a random enchantment on the held item. The enchantment is max level but will be a enchantment that is applyable on said item. {{SkillsNavbox|state=collapsed}} f7417c8c460570bcb873768d03aa56661e93a9a3 359 358 2025-04-10T18:37:29Z UnluckyWarl0ck 588787 wikitext text/x-wiki {{DISPLAYTITLE:Lore Hunter}}{{DescriptionEcho|WIP}} [[Category:Unique Skills|Lore Hunter]] {{Skill |title=Lore Hunter |image=Lore_Hunter.png |Type=Unique Skill |Obtain Cost=75K MP |Points to Master=1000 |Passive=Toggle |Next=[[Thoth|Thoth, Scribe of Eternity]] |Copying/Stealing= |Race= |Other=Reincarnation/Reroll }} == Usage == === Passive === *[Passive, Toggled] Adaptive Learning - When Lore hunter is toggled and mastered it gives a 25% dodge chance <br> ===Active=== *[Active, Press] Grab Lore - Learns a piece of lore from the target entity. It applies Movement disruption for 10 seconds, and will learn a random skill from the target. The possible skill types are uniques, extras, commons, magics and battle wills. It will prioritize learning skills you do not know yet. This only works once per player and up to 5 times per entity type. This count is ticked even when you do not succeed in learning a skill. The skills do cost their MP to copy. ** When used while looking at a block and crouching it will give you a copy of that block. Skill Griefing being off does disable this, otherwise it follows molecular manipulation logic for dropping blocks *[Active, Press] Create lore - Place a random enchantment on the held item. The enchantment is max level but will be a enchantment that is applicable on said item. {{SkillsNavbox|state=collapsed}} c2e9420b7089592e0845283f0caa196d9ff1c4aa Template:Skill 10 310 354 2025-04-10T18:33:13Z UnluckyWarl0ck 588787 Created page with "{{#invoke:Infobox|main |kind=skill |sep=, |image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}256px]]}} |sections=Information, Evolution, Obtaining |Information=Type, Series, Obtain Cost, Points to Learn, Points to Master, Passive |Evolution=Previous,Next |Obtaining=EP, Copying/Stealing, Obtaining a Spirit, Race, Combination of Skills, Other, Other2, Other3 |Other_label=Other |Other2_label=&nbsp; |Other3_label=&nbsp; }}" wikitext text/x-wiki {{#invoke:Infobox|main |kind=skill |sep=, |image={{#if:{{{image|}}}|[[File:{{{image}}}{{!}}256px]]}} |sections=Information, Evolution, Obtaining |Information=Type, Series, Obtain Cost, Points to Learn, Points to Master, Passive |Evolution=Previous,Next |Obtaining=EP, Copying/Stealing, Obtaining a Spirit, Race, Combination of Skills, Other, Other2, Other3 |Other_label=Other |Other2_label=&nbsp; |Other3_label=&nbsp; }} 1ad4f8677b789a9d83532986ea77c1ce8e3a040f Template:DescriptionEcho 10 311 355 2025-04-10T18:33:58Z UnluckyWarl0ck 588787 Created page with "{{#description2:{{{1|}}}}}{{{1|}}}" wikitext text/x-wiki {{#description2:{{{1|}}}}}{{{1|}}} 38437440983c3f5ebbeadff11d93f20cdeb92159 Template:SkillsNavbox 10 312 356 2025-04-10T18:35:22Z UnluckyWarl0ck 588787 Created page with "{{Navbox | title = Skills | state = {{{state|}}} | group1 = Intrinsic Skills | list1 = | group2 = Extra Skills | list2 = | group3 = Unique Skills | list3 =[[LoreHunter|Lore Hunter]] | group4 = Ultimate Skills | list4 = }}" wikitext text/x-wiki {{Navbox | title = Skills | state = {{{state|}}} | group1 = Intrinsic Skills | list1 = | group2 = Extra Skills | list2 = | group3 = Unique Skills | list3 =[[LoreHunter|Lore Hunter]] | group4 = Ultimate Skills | list4 = }} 4e73e0c69638bd2bb077e3b2269f09c85fecd6f3 386 356 2025-05-01T20:12:19Z UnluckyWarl0ck 588787 wikitext text/x-wiki {{Navbox | title = Skills | state = {{{state|}}} | group1 = Intrinsic Skills | list1 = | group2 = Extra Skills | list2 = [[Astral Grasp|Astral Grasp]] [[Astral Purification|Astal Purification]] [[Holy Chant|Holy Chant]] [[Horrific Incantation|Horrific Incantation]] [[Void Whisper|Void Whisper]] | group3 = Unique Skills | list3 =[[LoreHunter|Lore Hunter]] [[Umbra|Umbra]] [[Mad Knight|Mad Knight]] | group4 = Ultimate Skills | list4 = }} ef2059de9093d7ad7f0259595ee2f550b1036735 File:Lore Hunter.png 6 313 357 2025-04-10T18:35:53Z UnluckyWarl0ck 588787 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Site-favicon.ico 6 314 360 2025-04-29T08:22:41Z UnluckyWarl0ck 588787 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 361 360 2025-04-29T08:22:57Z UnluckyWarl0ck 588787 Protected "[[File:Site-favicon.ico]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite)) wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:Site-logo.png 6 315 362 2025-04-29T08:23:16Z UnluckyWarl0ck 588787 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 363 362 2025-04-29T08:23:37Z UnluckyWarl0ck 588787 Protected "[[File:Site-logo.png]]" ([Edit=Allow only administrators] (indefinite) [Rename=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite)) wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Umbra 0 316 364 2025-04-30T11:50:13Z UnluckyWarl0ck 588787 Created page with " {{DISPLAYTITLE:Umbra}}{{DescriptionEcho|WIP}} [[Category:Unique Skills|Umbra]] {{Skill |title=Umbra |image=Umbra.png |Type=Unique Skill |Obtain Cost=10K MP |Points to Master=1000 |Passive=Toggle |Next=??? |Copying/Stealing= |Race= |Other=Reincarnation/Reroll }} == Usage == === Passive === *[Passive, Toggled] Dark Touch - Your attacks deal 1% of a targets shp to them if the target does not have more then double your EP <br> ===Active=== *[Active, Press] Eclipse - Infl..." wikitext text/x-wiki {{DISPLAYTITLE:Umbra}}{{DescriptionEcho|WIP}} [[Category:Unique Skills|Umbra]] {{Skill |title=Umbra |image=Umbra.png |Type=Unique Skill |Obtain Cost=10K MP |Points to Master=1000 |Passive=Toggle |Next=??? |Copying/Stealing= |Race= |Other=Reincarnation/Reroll }} == Usage == === Passive === *[Passive, Toggled] Dark Touch - Your attacks deal 1% of a targets shp to them if the target does not have more then double your EP <br> ===Active=== *[Active, Press] Eclipse - Inflict blindness and anti-skill on all in range for a few seconds including yourself *[Active, Hold] Shadowmeld - Shrink into the shadows. Gives presence concealment and speed. Gives higher presence sense in darkness *[Active, Hold] Void Snare - Inflict SHP damage to the target and slow them {{SkillsNavbox|state=collapsed}} e20bb0547ed1df9abdd0975cad8e6560cac94b5d File:Umbra.png 6 317 365 2025-04-30T11:50:26Z UnluckyWarl0ck 588787 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Mad Knight 0 318 366 2025-04-30T11:56:54Z UnluckyWarl0ck 588787 Created page with " {{DISPLAYTITLE:Mad Knight}}{{DescriptionEcho|WIP}} [[Category:Unique Skills|Mad Knight]] {{Skill |title=Mad Knight |image=Knight.png |Type=Unique Skill |Obtain Cost=75K MP |Points to Master=1000 |Passive=Toggle |Next=??? |Copying/Stealing= |Race= |Other=Reincarnation/Reroll }} == Usage == === Passive === *[Passive, True] Unyielding Will: User's desire to never fall in battle grants him 10% of their Maximum Health back upon being reduced to 30% HP or below. This can o..." wikitext text/x-wiki {{DISPLAYTITLE:Mad Knight}}{{DescriptionEcho|WIP}} [[Category:Unique Skills|Mad Knight]] {{Skill |title=Mad Knight |image=Knight.png |Type=Unique Skill |Obtain Cost=75K MP |Points to Master=1000 |Passive=Toggle |Next=??? |Copying/Stealing= |Race= |Other=Reincarnation/Reroll }} == Usage == === Passive === *[Passive, True] Unyielding Will: User's desire to never fall in battle grants him 10% of their Maximum Health back upon being reduced to 30% HP or below. This can only trigger once every 120 seconds. Additionally, for the next 10 seconds after triggering, their Attack Speed and Critical Hit Rate are increased by 40%. *[Passive, Toggled] Mad Knight's Fury: While active, User enters a state of fury, gaining a 50% increase in Physical Damage and 30% increased Movement Speed. However, thier Defensive Resistance is reduced by 20% during this time. <br> ===Active=== *[Active, Press] Wrathful Strike: User charges forward in a straight line, striking all enemies in their path. Deals ???% Physical Damage of the users current weapon and slows enemies hit for 2 seconds. If the skill lands on 3 or more targets, the skill's cooldown is reduced by 5 seconds. *[Active, Press] Lancelot’s Final Stand: User channels their inner rage for 5 seconds, during which they becomes immune to any form of crowd control (Including Infinity prison) Upon completion of the skill, User performs a devastating AoE attack, dealing 500% Physical Damage based on their held weapon in a 10x10 (15x15 mastered) area around him and gaining 200% of the damage dealt as HP back. The cooldown of this skill is 60 seconds. *[Active, Press] Berserker's Endurance: Grants the user Absorption and resistance for each enemy that is within a 15x15 radius. The more enemies around them, the stronger their defense. The effect can stack up to 5 times. {{SkillsNavbox|state=collapsed}} 83f54558fa4e71378b33689bdfa4ee7154f4d501 Void Whisper 0 319 367 2025-05-01T18:04:44Z UnluckyWarl0ck 588787 Created page with " {{DISPLAYTITLE:Void Whisper}}{{DescriptionEcho|WIP}} [[Category:Extra Skills]] Skills|Void Whisper]] {{Skill |title=Void Whisper |image=Void_Whisper.png |Type=Extra Skill |Obtain Cost= Master Sound Manipulation, Have 15k EP and play one or more music disks |Points to Master=1000 |Passive=N/A |Next=[[Holy Chant|Holy Chant]] and [[Horrific Incantation|Horrific Incantation]] |Copying/Stealing= |Race= |Other=N/A }} == Usage == ===Active=== *[Active, Press] The user rel..." wikitext text/x-wiki {{DISPLAYTITLE:Void Whisper}}{{DescriptionEcho|WIP}} [[Category:Extra Skills]] Skills|Void Whisper]] {{Skill |title=Void Whisper |image=Void_Whisper.png |Type=Extra Skill |Obtain Cost= Master Sound Manipulation, Have 15k EP and play one or more music disks |Points to Master=1000 |Passive=N/A |Next=[[Holy Chant|Holy Chant]] and [[Horrific Incantation|Horrific Incantation]] |Copying/Stealing= |Race= |Other=N/A }} == Usage == ===Active=== *[Active, Press] The user releases a whisper of the void, dealing 10 sound damage to all in range and inflicting insanity 5 for 30 seconds {{SkillsNavbox|state=collapsed}} 03c0ed3b923928b04138aebb180423a562df0e7f Holy Chant 0 320 368 2025-05-01T18:11:24Z UnluckyWarl0ck 588787 Created page with " {{DISPLAYTITLE:Holy Chant}}{{DescriptionEcho|WIP}} [[Category:Extra Skills|Holy Chant]] {{Skill |title=Holy Chant |image=Holy_Chant.png |Type=Extra Skill |Obtain Cost=Master Void Whisper and consume 2 Holy Essence |Points to Master=1000 |Passive=Toggle |Next=[[Astral Purification|Astral Purification]] |Copying/Stealing= |Race= |Other= }} == Usage == === Passive === <br> ===Active=== *[Active, Hold] - Chant out loud, healing SHP damage to all in range including your..." wikitext text/x-wiki {{DISPLAYTITLE:Holy Chant}}{{DescriptionEcho|WIP}} [[Category:Extra Skills|Holy Chant]] {{Skill |title=Holy Chant |image=Holy_Chant.png |Type=Extra Skill |Obtain Cost=Master Void Whisper and consume 2 Holy Essence |Points to Master=1000 |Passive=Toggle |Next=[[Astral Purification|Astral Purification]] |Copying/Stealing= |Race= |Other= }} == Usage == === Passive === <br> ===Active=== *[Active, Hold] - Chant out loud, healing SHP damage to all in range including your self equal to 1% of your current SHP every second. Inflicts 1 regeneration level that lasts for 30 seconds to all in range besides the user every 5 seconds {{SkillsNavbox|state=collapsed}} 0b568622363df037d867ac25b723575c869ee9d9 Astral Purification 0 321 369 2025-05-01T18:13:01Z UnluckyWarl0ck 588787 Created page with " {{DISPLAYTITLE:Astral Purification}}{{DescriptionEcho|WIP}} [[Category:Extra Skills|Astral Purification]] {{Skill |title=Astral Purification |image=Astral_Purification.png |Type=Unique Skill |Obtain Cost= Have Holy Chant Mastered and eat 10 Holy Essence. Must be a hero |Points to Master=1000 |Passive=Toggle |Next=N/A |Copying/Stealing= |Race= |Other=Reincarnation/Reroll }} == Usage == ===Active=== *[Active, Hold] - When used on a target you remove all of their negati..." wikitext text/x-wiki {{DISPLAYTITLE:Astral Purification}}{{DescriptionEcho|WIP}} [[Category:Extra Skills|Astral Purification]] {{Skill |title=Astral Purification |image=Astral_Purification.png |Type=Unique Skill |Obtain Cost= Have Holy Chant Mastered and eat 10 Holy Essence. Must be a hero |Points to Master=1000 |Passive=Toggle |Next=N/A |Copying/Stealing= |Race= |Other=Reincarnation/Reroll }} == Usage == ===Active=== *[Active, Hold] - When used on a target you remove all of their negative status effects (besides infinity prison and antiskill) and give them the Astral Protection Effect for 2 minutes which grants 50 armor, does not work on those with Astral Protection effect currently on them. Costs 50K MP to cast {{SkillsNavbox|state=collapsed}} e99429e2ea2c7bd8c315925761b5ae12963f782e Horrific Incantation 0 322 370 2025-05-01T18:14:28Z UnluckyWarl0ck 588787 Created page with " {{DISPLAYTITLE:Horrific Incantation}}{{DescriptionEcho|WIP}} [[Category:Unique Skills|Horrific Incantation]] {{Skill |title=Horrific Incantation |image=Horrific_Incantation.png |Type=Unique Skill |Obtain Cost= Master void Whisper, have 5000 Souls |Points to Master=1000 |Passive= |Next=[[Thoth|Thoth, Scribe of Eternity]] |Copying/Stealing= |Race= |Other= }} == Usage == ===Active=== *[Active, Hold] - Chant out loud, dealing SHP damage to all in range including your sel..." wikitext text/x-wiki {{DISPLAYTITLE:Horrific Incantation}}{{DescriptionEcho|WIP}} [[Category:Unique Skills|Horrific Incantation]] {{Skill |title=Horrific Incantation |image=Horrific_Incantation.png |Type=Unique Skill |Obtain Cost= Master void Whisper, have 5000 Souls |Points to Master=1000 |Passive= |Next=[[Thoth|Thoth, Scribe of Eternity]] |Copying/Stealing= |Race= |Other= }} == Usage == ===Active=== *[Active, Hold] - Chant out loud, dealing SHP damage to all in range including your self equal to 1% of your current SHP every second. Inflicts 1 insanity level that lasts for 30 seconds to all in range besides the user every 5 seconds {{SkillsNavbox|state=collapsed}} f211371342382cd5bdb54a9db120e5a2bb867b0f 371 370 2025-05-01T18:15:55Z UnluckyWarl0ck 588787 wikitext text/x-wiki {{DISPLAYTITLE:Horrific Incantation}}{{DescriptionEcho|WIP}} [[Category:Unique Skills|Horrific Incantation]] {{Skill |title=Horrific Incantation |image=Horrific_Incantation.png |Type=Unique Skill |Obtain Cost= Master void Whisper, have 5000 Souls |Points to Master=1000 |Passive= |Next=[[Astral Grasp|Astral Grasp]] |Copying/Stealing= |Race= |Other= }} == Usage == ===Active=== *[Active, Hold] - Chant out loud, dealing SHP damage to all in range including your self equal to 1% of your current SHP every second. Inflicts 1 insanity level that lasts for 30 seconds to all in range besides the user every 5 seconds {{SkillsNavbox|state=collapsed}} 239e8e6ee631a2cd109ebc05d5a491ee6a8fe29f 385 371 2025-05-01T20:10:16Z UnluckyWarl0ck 588787 wikitext text/x-wiki {{DISPLAYTITLE:Horrific Incantation}}{{DescriptionEcho|WIP}} [[Category:Extra Skills|Horrific Incantation]] {{Skill |title=Horrific Incantation |image=Horrific_Incantation.png |Type=Unique Skill |Obtain Cost= Master void Whisper, have 5000 Souls |Points to Master=1000 |Passive= |Next=[[Astral Grasp|Astral Grasp]] |Copying/Stealing= |Race= |Other= }} == Usage == ===Active=== *[Active, Hold] - Chant out loud, dealing SHP damage to all in range including your self equal to 1% of your current SHP every second. Inflicts 1 insanity level that lasts for 30 seconds to all in range besides the user every 5 seconds {{SkillsNavbox|state=collapsed}} 7ad9b41218fa6cc60db8eec8fd2692f7b8091e5c Astral Grasp 0 323 372 2025-05-01T18:17:06Z UnluckyWarl0ck 588787 Created page with " {{DISPLAYTITLE:Astral Grasp}}{{DescriptionEcho|WIP}} [[Category:Extra Skills|Astral Grasp]] {{Skill |title=Astral Grasp |image=Astral_Grasp.png |Type=Unique Skill |Obtain Cost=Have more then 10k Souls and have Horrific Incantation Mastered |Points to Master=1000 |Passive= |Next=N/A |Copying/Stealing= |Race= |Other= }} == Usage == ===Active=== *[Active, Hold] - Aim at a target and let the bell toll 3 times for them. On completion they are grabbed by the souls you have..." wikitext text/x-wiki {{DISPLAYTITLE:Astral Grasp}}{{DescriptionEcho|WIP}} [[Category:Extra Skills|Astral Grasp]] {{Skill |title=Astral Grasp |image=Astral_Grasp.png |Type=Unique Skill |Obtain Cost=Have more then 10k Souls and have Horrific Incantation Mastered |Points to Master=1000 |Passive= |Next=N/A |Copying/Stealing= |Race= |Other= }} == Usage == ===Active=== *[Active, Hold] - Aim at a target and let the bell toll 3 times for them. On completion they are grabbed by the souls you have harvested and instantly take 75% of their current SHP in damage along with slowness, nausea and infinity prison for 3 seconds. Costs 300 Souls per use {{SkillsNavbox|state=collapsed}} d3dd19bc0f122b58594427f1b187c41bb25f1d59 Tensura: Eldritch Wiki/external 0 8 373 325 2025-05-01T18:19:45Z UnluckyWarl0ck 588787 wikitext text/x-wiki {{Main page box/start | title = External links }} <div class="mp-links columns-2"> * {{MP link|Discord|link=https://discord.gg/TNq6C3gsdU|image=Discord.svg|size=64x64px}} </div> {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> de6a74ed803fd96c698f93764ea84ecb2c016c8c 374 373 2025-05-01T18:23:12Z UnluckyWarl0ck 588787 wikitext text/x-wiki {{Main page box/start | title = External links }} <div class="mp-links columns-2"> * {{MP link|Discord|link=https://discord.gg/TNq6C3gsdU|image=Discord.svg|size=64x64px}} *{{MP link|Curseforge|link =https://www.curseforge.com/minecraft/mc-mods/tensura-eldritch|image=Curse_Forge.svg|size=64x64px}} </div> {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> 28d91dde984a0cfe5a8547e07572460fd1250e39 376 374 2025-05-01T18:23:55Z UnluckyWarl0ck 588787 wikitext text/x-wiki {{Main page box/start | title = External links }} <div class="mp-links columns-2"> * {{MP link|Discord|link=https://discord.gg/TNq6C3gsdU|image=Discord.svg|size=64x64px}} *{{MP link|Curseforge|link =https://www.curseforge.com/minecraft/mc-mods/tensura-eldritch|image=Curse_Forge.png|size=64x64px}} </div> {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> 1b68037416ec0cc243392880ee3bb78788801a38 File:Curse Forge.png 6 324 375 2025-05-01T18:23:35Z UnluckyWarl0ck 588787 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Tensura: Eldritch Wiki/pages 0 5 377 326 2025-05-01T20:02:01Z UnluckyWarl0ck 588787 wikitext text/x-wiki {{Main page box/start | title = Useful wiki pages | class = centered-content }} <div class="mp-links columns-2"> * {{MP link|Abilities|link=Abilities}} * {{MP link|Config|link=Config}} * {{MP link|Commands|link=Commands}} * {{MP link|Items|link=Items}} * {{MP link|Mechanics|link=Mechanics}} </div> {{Main page box/end}}<noinclude>[[Category:Main page boxes]]</noinclude><!-- don't edit this line --> 1076d05adc640b3f47cf1a21c2bf36b55a566630 Commands 0 325 378 2025-05-01T20:02:47Z UnluckyWarl0ck 588787 Created page with "{{WIP}}" wikitext text/x-wiki {{WIP}} 85aaf96741c7afa7b7928db8cb5610005c6c74a4 MediaWiki:Sidebar 8 297 379 328 2025-05-01T20:02:59Z RheingoldRiver 2743 wikitext text/x-wiki * navigation ** mainpage|mainpage-description ** recentchanges-url|recentchanges ** randompage-url|randompage ** helppage|help-mediawiki * Tensura: Eldritch ** Getting_Started|Getting Started ** Abilities|Abilities ** Races|Races ** Items|Items ** Mechanics|Mechanics ** Config|Config ** Commands|Commands * wiki.gg ** support:|sidebar-support-wiki ** Wikigg-ticket-link|sidebar-submit-ticket ** wikigg-socialmedia-joinlink|wikigg-socialmedia-jointext-sidebar * SEARCH * TOOLBOX * LANGUAGES b7ac48dc9091656732626228a343932b58149788 Template:WIP 10 326 380 2025-05-01T20:04:58Z UnluckyWarl0ck 588787 Created page with "<div style="background:#0f0a00; color:#FFFFFF; margin:0 auto 1em auto; padding:0 2px; border:2px solid #fcca00; -moz-border-radius:7.5px; border-radius:7.5px;"> {| border="0" style="text-align:left" cellpadding="0" |<span style="font-size:20px;">&nbsp;'''Work In Progress.'''</span><br>&nbsp;''This {{{1|page}}} is currently being worked on or has unfinished information.<br>&nbsp; Click {{EditPage|text=here}} in order to contribute to this article.'' |}</div><includeonly>[..." wikitext text/x-wiki <div style="background:#0f0a00; color:#FFFFFF; margin:0 auto 1em auto; padding:0 2px; border:2px solid #fcca00; -moz-border-radius:7.5px; border-radius:7.5px;"> {| border="0" style="text-align:left" cellpadding="0" |<span style="font-size:20px;">&nbsp;'''Work In Progress.'''</span><br>&nbsp;''This {{{1|page}}} is currently being worked on or has unfinished information.<br>&nbsp; Click {{EditPage|text=here}} in order to contribute to this article.'' |}</div><includeonly>[[Category:Work in Progress]]</includeonly><noinclude>[[Category:Templates]]</noinclude> 905049e654ca231567187d36343cf01789adfe86 Template:EditPage 10 327 381 2025-05-01T20:05:45Z UnluckyWarl0ck 588787 Created page with "[https://tensuraeldritch.wiki.gg{{localurl:{{FULLPAGENAME}}}}?action=edit {{{text|Edit This Page}}}]" wikitext text/x-wiki [https://tensuraeldritch.wiki.gg{{localurl:{{FULLPAGENAME}}}}?action=edit {{{text|Edit This Page}}}] adbed771f52d45e71f44e89e0111e2773b568c59 Mechanics 0 328 382 2025-05-01T20:06:02Z UnluckyWarl0ck 588787 Created page with "{{WIP}}" wikitext text/x-wiki {{WIP}} 85aaf96741c7afa7b7928db8cb5610005c6c74a4 Items 0 329 383 2025-05-01T20:06:35Z UnluckyWarl0ck 588787 Created page with "{{WIP}}" wikitext text/x-wiki {{WIP}} 85aaf96741c7afa7b7928db8cb5610005c6c74a4 Config 0 330 384 2025-05-01T20:07:22Z UnluckyWarl0ck 588787 Created page with "{{WIP}}" wikitext text/x-wiki {{WIP}} 85aaf96741c7afa7b7928db8cb5610005c6c74a4 Tensura: Eldritch 0 331 387 2025-05-01T22:18:42Z Alizard 499980 Created page with "'''Tensura: Eldritch''' is a semi-eldritch themed add-on for ''Tensura:Reincarnated''." wikitext text/x-wiki '''Tensura: Eldritch''' is a semi-eldritch themed add-on for ''Tensura:Reincarnated''. cba52fba2c593c9ff1ef25ea2c3c02af4201701e